measles {spatPomp} | R Documentation |
Measles in UK spatPomp generator
Description
Generate a spatPomp object for measles in the top-U
most populous cities in England and Wales.
The model is adapted from He et al. (2010) with gravity transport following Park and Ionides (2020).
The data are from Dalziel et al (2016).
Usage
measles(
U = 6,
dt = 2/365,
fixed_ivps = TRUE,
S_0 = 0.032,
E_0 = 5e-05,
I_0 = 4e-05
)
Arguments
U |
A length-one numeric signifying the number of cities to be represented in the spatPomp object. |
dt |
a numeric (in unit of years) that is used as the Euler time-increment for simulating measles data. |
fixed_ivps |
a logical. If |
S_0 |
a numeric. If |
E_0 |
a numeric. If |
I_0 |
a numeric. If |
Value
An object of class ‘spatPomp’ representing a U
-dimensional spatially coupled measles POMP model.
Relationship to published analysis
This model was used to generate the results of Ionides et al (2021). However, their equation (6) is not exactly correct for the Binomial Gamma infinitesimal model used in the code, as shown by Proposition 5 of Breto and Ionides, 2011. If Poisson Gamma infinitesimal increments were used (Proposition 4 of Breto and Ionides, 2011) then (6) would be correct, but the resulting unbounded increments could break the non-negativity requirement for compartment membership. The same issue arises with the description in Park and Ionides (2020), though that analysis was based on a different model implementation since the spatPomp package was not yet available.
A difference between (6) of Ionides et al (2021) and (2.1) of He et al (2010) is that in (6) the mixing exponent \alpha
is applied to (I_u/P_u)
rather than just to I_u
.
In the context of He et al (2010) this changes the parameterization but has negligible effect on the model itself since P_u(t)
is approximately constant and so changing its power can be compensated by a corresponding change in the transmission rate, \beta
.
In practice, models fitted to data have alpha
close to 1
, so this issue may be moot and this modeling mechanism may not be an effective empirical way to carry out the goal of making allowance for heterogeneous mixing.
The code here includes a cohort effect, c
, following He et al (2010), that was not included by Ionides et al (2021).
This effect leads to a non-differentiability of expected increments which is problematic for the spatPomp implementation of GIRF.
For the results of Ionides et al (2021), this was set to c=0
.
The analysis of He et al (2010), and the model generated by he10()
, use weekly aggregated cases.
Weekly reports were not available beyond the 20 cites studied by He et al (2010) so measles()
relies on the biweekly reports used by Ionides et al (2021) and Ionides & Park (2020).
It turns out to be an important detail of the model by He et al (2010) that a delay is included between birth and entry into the susceptible compartment.
He et al (2010) found a 4 year delay fits the data.
This value is fixed to be the variable birth_delay
in the code for measles()
.
The code for Ionides et al (2021) uses a 3 year delay, and the delay is not explained in the abbreviated model description.
In measles()
we have reverted to the 4 year delay identified by He et al (2010).
Note
This function goes through a typical workflow of constructing
a typical spatPomp object (1-4 below). This allows the user to have a
file that replicates the exercise of model building as well as function
that creates a typical nonlinear model in epidemiology in case they want
to test a new inference methodology. We purposely do not modularize this
function because it is not an operational piece of the package and is
instead useful as an example.
1. Getting a measurements data.frame with columns for times,
spatial units and measurements.
2. Getting a covariates data.frame with columns for times,
spatial units and covariate data.
3. Constructing model components (latent state initializer,
latent state transition simulator and measurement model). Depending
on the methods used, the user may have to supply a vectorfield to
be integrated that represents the deterministic skeleton of the latent
process.
4. Bringing all the data and model components together to form a
spatPomp object via a call to spatPomp().
Author(s)
Edward L. Ionides
References
Ionides, E. L., Asfaw, K., Park, J., and King, A. A. (2021). Bagged filters for partially observed interacting systems. Journal of the American Statistical Association, doi:10.1080/01621459.2021.1974867
Dalziel, Benjamin D. et al. (2016) Persistent chaos of measles epidemics in the prevaccination United States caused by a small change in seasonal transmission patterns. PLoS Computational Biology, 12(2), e1004655. doi:10.5061/dryad.r4q34
Park, J. and Ionides, E. L. (2020) Inference on high-dimensional implicit dynamic models using a guided intermediate resampling filter. Statistics and Computing, doi:10.1007/s11222-020-09957-3
Breto, C. and Ionides, E.L. (2011) Compound Markov counting processes and their applications to modeling infinitesimally over-dispersed systems. Stochastic Processes and their Applications 121, 2571-2591. doi:10.1016/j.spa.2011.07.005
See Also
measles_UK
, city_data_UK
Other spatPomp model generators:
bm()
,
bm2()
,
gbm()
,
he10()
,
lorenz()
Examples
# Complete examples are provided in the package tests
## Not run:
m <- measles(U = 5)
# See all the model specifications of the object
spy(m)
## End(Not run)