Skip to contents

SIR stratified into age groups, with mixing supplied by a POLYMOD-style contact matrix. For group i with N_i = S_i + I_i + R_i, dS_i/dt = -S_i sum_j C_ij I_j / N_j, dI_i/dt = S_i sum_j C_ij I_j / N_j - gamma I_i, dR_i/dt = gamma I_i, where C_ij is the effective transmission rate from an infectious member of group j to a susceptible in group i, that is, the mean number of contacts per unit time scaled by the per-contact transmission probability. Mossong et al. report the contact counts; multiplying them by the transmission probability gives C.

Usage

Sirtdy(S, I, R, contact_matrix, gamma, t_max = 160, dt = 0.1)

Arguments

S, I, R

Initial counts per age group; all three the same length.

contact_matrix

Square matrix C, one row/column per age group.

gamma

Recovery rate, common to all groups.

t_max

Integration horizon. Default 160.

dt

Runge-Kutta step. Default 0.1.

Value

List with estimate (overall attack rate), S, I, R, N, attack_rate, R0, peak_prevalence, peak_time, n_groups, population, conservation_error, gamma, t_max, dt, method.

Details

The basic reproduction number is the spectral radius of the next-generation matrix K_ij = S_i(0) C_ij / (gamma N_j), computed by power iteration from a uniform start vector, which is deterministic and so identical across language arms. With one age group this collapses to the scalar R0 = C S0 / (gamma N).

References

Mossong, J. et al. (2008). Social contacts and mixing patterns relevant to the spread of infectious diseases. PLoS Medicine 5(3), e74. doi:10.1371/journal.pmed.0050074

Examples

S <- c(500, 500)
I <- c(5, 5)
R <- c(0, 0)
contact_matrix <- matrix(c(2, 1, 1, 2), 2, 2)
Sirtdy(S, I, R, contact_matrix, gamma = 0.1)
#> $estimate
#> [1] 0.9999999
#> 
#> $S
#> [1] 4.680422e-11 4.680422e-11
#> 
#> $I
#> [1] 6.677228e-05 6.677228e-05
#> 
#> $R
#> [1] 504.9999 504.9999
#> 
#> $N
#> [1] 505 505
#> 
#> $attack_rate
#> [1] 0.9999999
#> 
#> $R0
#> [1] 29.70297
#> 
#> $peak_prevalence
#> [1] 0.8536208
#> 
#> $peak_time
#> [1] 2.8
#> 
#> $n_groups
#> [1] 2
#> 
#> $population
#> [1] 1010
#> 
#> $conservation_error
#> [1] 4.547474e-13
#> 
#> $gamma
#> [1] 0.1
#> 
#> $t_max
#> [1] 160
#> 
#> $dt
#> [1] 0.1
#> 
#> $method
#> [1] "Age-structured SIR with contact matrix (Mossong et al. 2008)"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"