library(serosv)
knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Proposed model
A transmission model consists of 3 compartments: susceptible (S), infected (I), recovered (R)
With the following assumptions:
Individuals are born into susceptible group (exposure time is age of the individual) then transfer to infected class and recovered class
Recovered individuals gained lifelong immunity
Age homogeneity
And described by a system of 3 differential equations
$$ \begin{cases} \frac{dS(t)}{dt} = B(t) (1-p) - \lambda(t)S(t) - \mu S(t) \ \frac{dI(t)}{dt} = \lambda(t)S(t) - \nu I(t) - \mu I(t) - \alpha I(t) \ \frac{dR(t)}{dt} = B(t) p + \nu I(t) - \mu R(t) \end{cases} $$
Where:
Fitting data
To fit a basic SIR model, use sir_basic_model()
and specify the following parameters
state
- initial population of each compartment
times
- a time sequence
parameters
- parameters for SIR model
state <- c(S=4999, I=1, R=0) parameters <- c( mu=1/75, # 1 divided by life expectancy (75 years old) alpha=0, # no disease-related death beta=0.0005, # transmission rate nu=1, # 1 year for infected to recover p=0 # no vaccination at birth ) times <- seq(0, 250, by=0.1) model <- sir_basic_model(times, state, parameters) model$parameters plot(model)
Proposed model
A transmission model consists of 3 compartments: susceptible (S), infected (I), recovered (R)
With the following assumptions:
Time homogeneity
Age heterogeneity
Described by a system of 3 differential equations
$$ \begin{cases} \frac{ds(a)}{da} = -\lambda s(a) \ \frac{di(a)}{da} = \lambda s(a) - \nu i(a) \ \frac{dr(a)}{da} = \nu i(a) \end{cases} $$
Where:
FItting data
To fit an SIR model with constant FOI, use sir_static_model()
and specify the following parameters
state
- initial proportion of each compartment
ages
- an age sequence
parameters
- parameters for the model
state <- c(s=0.99,i=0.01,r=0) parameters <- c( lambda = 0.05, nu=1/(14/365) # 2 weeks to recover ) ages<-seq(0, 90, by=0.01) model <- sir_static_model(ages, state, parameters) model$parameters plot(model)
Proposed model
Extends on the SIR model by having interacting sub-populations (different age groups)
With K subpopulations, the WAIFW matrix or mixing matrix is given by
$$ C = \begin{bmatrix} \beta_{11} & \beta_{12} & ... & \beta_{1K} \ \beta_{21} & \beta_{22} & ... & \beta_{2K} \ \vdots & \vdots & ... & \vdots \ \beta_{K1} & \beta_{K2} & ... & \beta_{KK} \ \end{bmatrix} $$
The system of differential equations for the i$th$ subpopulation is given by
$$ \begin{cases} \frac{dS_i(t)}{dt} = -(\sum^K_{j=1}\beta_{ij}I_j(t)) S_i(t) + N_i\mu_i - \mu_i S_i(t) \ \frac{dI_i(t)}{dt} = (\sum^K_{j=1}\beta_{ij}I_j(t)) S_i(t) - (\nu_i + \mu_i) I_i(t) \ \frac{dR_i(t)}{dt} = \nu_i I_i(t) - \mu_i R_i(t) \end{cases} $$
FItting data
To fit a SIR model with subpopulations, use sir_subpops_model()
and specify the following parameters
state
- initial proportion of each compartment for each population
beta_matrix
- the WAIFW matrix
times
- a time sequence
parameters
- parameters for the model
k <- 2 # number of population state <- c( # proportion of each compartment for each population s = c(0.8, 0.6), i = c(0.2, 0.4), r = c( 0, 0) ) beta_matrix <- c( c(0.05, 0.00), c(0.00, 0.05) ) parameters <- list( beta = matrix(beta_matrix, nrow=k, ncol=k, byrow=TRUE), nu = c(1/30, 1/30), mu = 0.001, k = k ) times<-seq(0,10000,by=0.5) model <- sir_subpops_model(times, state, parameters) model$parameters plot(model) # returns plot for each population
Proposed model
Extends on SIR model with 2 additional compartments: maternal antibody (M) and exposed period (E)
And described by the following system of ordinary differential equation
$$ \begin{cases} \frac{dM(a)}{da} = -(\gamma + \mu(a))M(a) \ \frac{dS(a)}{da} = \gamma M(a) - (\lambda(a) + \mu(a)) S(a) \ \frac{dE(a)}{da} = \lambda(a) S(a) - (\sigma + \mu(a)) E(a) \ \frac{dI(a)}{da} = \sigma(a) E(a) - (\nu + \mu(a)) I(a) \ \frac{dR(a)}{da} = \nu I(a) - \mu(a) R(a) \end{cases} $$
Where
$M(0)$ = B, the number of births in the population
$\gamma$ is the rate of antibody decaying
$\lambda(a)$ is the force of infection at age $a$
$\mu(a)$ is the natural death rate at age $a$
$\sigma$ is the rate of becoming infected after being exposed
$\nu$ is the recovery rate
Fitting data
To fit a MSEIR, use mseir_model()
and specify the following parameters
a
- age sequence
And model parameters including gamma
, lambda
, sigma
, nu
model <- mseir_model( a=seq(from=1,to=20,length=500), # age range from 0 -> 20 yo gamma=1/0.5, # 6 months in the maternal antibodies lambda=0.2, # 5 years in the susceptible class sigma=26.07, # 14 days in the latent class nu=36.5 # 10 days in the infected class ) model$parameters plot(model)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.