Learn R Programming

pomp (version 5.11)

compartmental_models: Compartmental epidemiological models

Description

Simple SIR-type models implemented in various ways.

Usage

sir(
  gamma = 26,
  mu = 0.02,
  iota = 0.01,
  beta1 = 400,
  beta2 = 480,
  beta3 = 320,
  beta_sd = 0.001,
  rho = 0.6,
  k = 0.1,
  pop = 2100000,
  S_0 = 26/400,
  I_0 = 0.001,
  R_0 = 1 - S_0 - I_0,
  t0 = 0,
  times = seq(from = t0 + 1/52, to = t0 + 4, by = 1/52),
  seed = 329343545,
  delta.t = 1/52/20
)

sir2( gamma = 24, mu = 1/70, iota = 0.1, beta1 = 330, beta2 = 410, beta3 = 490, rho = 0.1, k = 0.1, pop = 1e+06, S_0 = 0.05, I_0 = 1e-04, R_0 = 1 - S_0 - I_0, t0 = 0, times = seq(from = t0 + 1/12, to = t0 + 10, by = 1/12), seed = 1772464524 )

Value

These functions return ‘pomp’ objects containing simulated data.

Arguments

gamma

recovery rate

mu

death rate (assumed equal to the birth rate)

iota

infection import rate

beta1, beta2, beta3

seasonal contact rates

beta_sd

environmental noise intensity

rho

reporting efficiency

k

reporting overdispersion parameter (reciprocal of the negative-binomial size parameter)

pop

overall host population size

S_0, I_0, R_0

the fractions of the host population that are susceptible, infectious, and recovered, respectively, at time zero.

t0

zero time

times

observation times

seed

seed of the random number generator

delta.t

Euler step size

Details

sir() producees a ‘pomp’ object encoding a simple seasonal SIR model with simulated data. Simulation is performed using an Euler multinomial approximation.

sir2() has the same model implemented using Gillespie's algorithm.

In both cases the measurement model is negative binomial: reports is distributed as a negative binomial random variable with mean equal to rho*cases and size equal to 1/k.

This and similar examples are discussed and constructed in tutorials available on the package website.

See Also

More examples provided with pomp: blowflies, childhood_disease_data, dacca(), ebola, gompertz(), ou2(), pomp_examples, ricker(), rw2(), verhulst()

Examples

Run this code
# \donttest{
  po <- sir()
  plot(po)
  coef(po)
  
  po <- sir2()
  plot(po)
  plot(simulate(window(po,end=3)))
  coef(po)
  
  po |> as.data.frame() |> head()
# }

Run the code above in your browser using DataLab