epiinf
defines a model for latent infections.
For the basic version of the model, this defines the generation distribution of the disease, the number of days for which to seed infections, and the prior distribution on the parameter \(\tau\),
as described in the model description vignette. Recall that \(\tau\) is the prior mean on daily seeded infections. These three parameters are controlled by the arguments gen, seed_days and prior_seeds respectively.
epiinf(
gen,
seed_days = 6L,
prior_seeds = hexp(prior_aux = rstanarm::exponential(0.03)),
latent = FALSE,
family = "normal",
prior_aux = rstanarm::normal(10, 5),
fixed_vtm = 1,
pop_adjust = FALSE,
pops = NULL,
rm = NULL,
prior_susc = NULL,
prior_rm_noise = NULL
)
A numeric vector representing the probability mass function for the generation time of the disease (must be a probability vector).
An integer giving the number of days for which to seed infections. Defaults to 6L
.
The prior distribution on seeded infections. This may be a call to normal
, student_t
, exponential
, or to hexp
. The latter
distribution allows hierarchical modeling of seeded infections.
If TRUE
, treat infections as latent parameters using the extensions described in Section 5.2 here.
Specifies the family for the prior distribution on daily infections. Only used if latent = TRUE
, and currently restricted to normal
.
Prior distribution for the auxiliary variable in the distribution for latent infections. Only used if latent = TRUE
. If fixed_vtm = TRUE
, then
this refers to the variance-to-mean ratio. If fixed_vtm = FALSE
, it is instead the coefficient of variation. Can be a call to exponential
,
normal
, student_t
or cauchy
. These result in half-normal, half-t and half-cauchy priors.
If TRUE
, then the prior variance-to-mean ratio for latent infections is fixed, i.e. the auxiliary
variable refers to the coefficient of dispersion. If FALSE
, then the prior ratio of standard deviation to mean is fixed instead,
and the auxiliary variable refers to the coefficient of variation.
If TRUE
, applies a population adjustment to the infection process. Defaults to FALSE
.
A character vector giving the name of the column in the dataframe corresponding to the population of each group.
A characted vector giving a column name in data
(see epim
). Each entry should be the proportion of the susceptible
population in that group that are removed at that point by some means other than infection; i.e. vaccination. Only used if pop_adjust=TRUE
.
Prior distribution on the initial susceptible population at time 0, expressed as a proportion of the total population size.
This quantity lies between 0 and 1, and is useful when the first modeled date is after the true beginning of an epidemic. Only used when pop_adjust = TRUE
.
If unspecified, then the entire population is assumed to be susceptible at time 0. If specified, should be a call to normal
.
Removal from the susceptible population (to account for vaccinations) can be applied using the rm
argument. However, in practice, it
is difficult to specify the proportion of the susceptible class removed at any point in time. prior_rm_noise
helps to model noise around this. If specified, should be a call to normal
.
An object of class epiinf
.
epiinf
has additional arguments which allow the user to extend the basic model.
Using latent=TRUE
replaces the renewal process with a model that treats latent infections as unknown parameters that are sampled along with other parameters. The family
argument then gives the distribution family for
latent infections, while prior_aux
defines the prior on the coefficient of dispersion \(d\) of this distribution.
Recall that one can adjust the infection process to explicitly model changes in infection rates as the remaining susceptible population is depleted.
In particular, the adjustment ensures that cumulative infections never breaches the initial susceptible population.
The adjustment was described in Section 5.3 of the model description article.
It can be employed by setting pop_adjust = TRUE
and using the susceptibles
argument to point towards a variable in the dataframe which gives the susceptible population at each point in time.
# NOT RUN {
data(EuropeCovid)
inf <- epiinf(
gen = EuropeCovid$si,
seed_days = 6L,
prior_seeds = hexp(rstanarm::exponential(0.02))
)
# }
Run the code above in your browser using DataLab