human_seis.Rmd
ramp.xds
includes the standard SEIS
model and the delay SEIS model. The dependent state variables for both
models are:
S the density of susceptible hosts
E the density of exposed hosts who are infected but not yet infectious
I the density of infectious hosts
In the basic versions of the model – without demographic changes – population density is constant, so H=S+E+I.
ramp.xds
includes the standard SEIS
model and the delay SEIS (SEISd) model.
The SEIS model is a human model modified from the SIS model to include the Exposed group of individuals (E). It is incorporated within the ‘ramp.xds’ with the fulfillment of the generic interface of the human component.
The model has three parameters:
b is the fraction of infective bites that cause an infection;
ν is the transition rate from exposed to infectious: the duration of the latent period is 1/ν
r is the clearance rate for infections: the average duration of infection in this model is 1/r
These are coupled systems of ordinary differential equations forced by the force of infection, denoted h(t), where h=Fh(E); here, we assume that exposure is Poisson, so we let:
h=bE
dSdt=−hS+rIdEdt=hS−νEdIdt=νE−rI
seis = xds_setup(Xname = "SEIS", MYZname = "trivial", MYZopts = MYZo, Xopts=Xo, HPop=HPop)
seis = xds_solve(seis, 3650, 15)
unlist(list_Xvars(seis$outputs$last_y, seis, 1)) -> seis_inf
seis_inf
#> S E I H
#> 652.95170 25.04472 322.00358 1000.00000
This model has the steady state…
ˉE=Hhrh(r+ν)+rνˉI=Hhνh(r+ν)+rνˉS=H−ˉE−ˉI
xde_steady_state_X(1/365, 1000, seis$Xpar[[1]]) -> seis_ss
seis_ss
#> S E I H
#> 652.95170 25.04472 322.00358 1000.00000
sum((seis_inf-seis_ss)^2) < 1e-9
#> [1] TRUE
In the delay differential equation model, we let ν denote the duration of the incubation period, and we let hν=h(t−ν).
dSdt=−hS+rIdEdt=hS−hνSνdIdt=hνSν−rI and H=S+E+I. At steady state, h=hv, so
ˉS=H1+hν+h/rˉE=hˉSνˉI=hrˉS
SEISd = xds_setup(Xname = "SEISd", MYZname = "trivial", MYZopts = MYZo, Xopts=Xo, HPop=HPop)
SEISd = xds_solve(SEISd, Tmax = 3650, dt=15)
unlist(list_Xvars(SEISd$outputs$last_y, SEISd, 1))[1:4] -> seisd_inf
seisd_inf
#> S E I H
#> 652.95173 25.04467 322.00359 1000.00000
xde_steady_state_X(1/365, 1000, SEISd$Xpar[[1]]) -> seisd_ss
seisd_ss
#> S E I H
#> 652.95170 25.04472 322.00358 1000.00000
sum((seisd_inf-seisd_ss)^2) < 1e-5
#> [1] TRUE