Generate a spatPomp object for measles adding spatial coupling to The model and data from He et al. (2010) with gravity transport as in Park and Ionides (2020). Other transport models may be added in future. The data in the object matches He et al. (2010). The model matches that analysis in the specific case where there is no coupling and all parameters are unit-specific.
he10(
U = 6,
dt = 2/365,
Tmax = 1964,
expandedParNames = c("alpha", "iota", "R0", "cohort", "amplitude", "gamma", "sigma",
"sigmaSE", "rho", "psi", "g", "S_0", "E_0", "I_0"),
basic_params = c(alpha = 1, iota = 0, R0 = 30, cohort = 0, amplitude = 0.5, gamma = 52,
sigma = 52, mu = 0.02, sigmaSE = 0.15, rho = 0.5, psi = 0.15, g = 400, S_0 = 0.032,
E_0 = 5e-05, I_0 = 4e-05),
towns_selected = NULL
)
An object of class ‘spatPomp’ representing a U
-dimensional spatially coupled measles POMP model.
A length-one numeric signifying the number of cities to be represented in the spatPomp object. Default U=20 gives all the towns studied by He et al., the 10 largest and 10 selected smaller towns.
a numeric (in unit of years) that is used as the Euler time-increment for simulating measles data.
Upper time for the window used to construct the object. The lower time is fixed at 1950.0. The default value matches He et al (2010).
specifies the names of parameters which take unit-specific values. Remaining parameters take a single, shared value for all units.
A candidate parameter vector in the basic format, i.e., no unit-specific parameters or unit-related name extensions.
A numeric vector of towns to be modeled. Defaults to 1:U, with cities ranked by decreasing population and 1 being London.
The model generator he10()
differs from measles()
in some details necessitated to reproduce the results of He et al (2010).
The measles()
model follows the decision of Park and Ionides (2020) and Ionides et al (2021) to apply the mixing exponent \(\alpha_u\) to \((I_u/P_u)\) rather than just to \(I_u\).
he10()
does this for the infections arising from individuals traveling to another town (which don't arise for the panel model of He et al (2010)).
However, for infections arising within a city, in order to reproduce the results of He et al (2010), he10()
uses \((I_u^{\alpha_u}/P_u)\).
This is not fully documented in the text of Ionides et al (2022).
Models fitted to data have \(alpha_u\) close to \(1\), so this issue may be negligible in practice.
Another discrepancy between the he10()
code and the mathematical model written by Ionides et al (2022) arises in whether individuals traveling from \(u\) to \(v\) use mixing exponent \(\alpha_u\) or \(\alpha_v\).
Ionides et al (2022) wrote \(u\) but the code used implemented \(v\).
The implementation in he10()
matches the implementation of Ionides et al (2022) and so uses \(v\).
It might seem surprising that immigrant infections affect only the first term in the expression for \(\mu_{SE}\) in Ionides et al (2022), and in the corresponding he10()
code.
This immigration term is needed in the first term to make the model of He et al (2010) a proper sub-model, when coupling is removed by setting the gravitational constant parameter equal to zero.
When this constant is allowed to be positive, the role of immigrant infections transmitting to traveling individuals is anticipated to be a negligible, second-order effect which has been omitted from the model.
Edward L. Ionides
The code for this spatPomp has duplication with measles(), but in future the two models may diverge. The measles() spatPomp is a simplified situation useful for testing some methods. However, measles() does not permit unit-specific parameters, which he10() allows. Also, the structure of this spatPomp is compatible with the spatiotemporal iterated filtering algorithm ibpf(). This requires shared parameters to be represented with a value for each unit, which should be the same for each unit in a valid model instance but may vary between units while optimizing.
Asfaw, K., Park, J., Ho, A., King, A. A., and Ionides, E. L. (2020) Partially observed Markov processes with spatial structure via the R package spatPomp. ArXiv: 2101.01157. tools:::Rd_expr_doi("10.48550/arXiv.2101.01157")
He, D., Ionides, E. L., and King, A. A. (2010). Plug-and-play inference for disease dynamics: measles in large and small populations as a case study. Journal of the Royal Society Interface, 7(43), 271-283. tools:::Rd_expr_doi("10.1098/rsif.2009.0151")
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, tools:::Rd_expr_doi("10.1080/01621459.2021.1974867")
Ionides, E. L., Ning, N., and Wheeler, J. (2022). An iterated block particle filter for inference on coupled dynamic systems with shared and unit-specific parameters. Statistica Sinica, to appear. tools:::Rd_expr_doi("10.48550/arXiv.2206.03837")
Park, J. and Ionides, E. L. (2020) Inference on high-dimensional implicit dynamic models using a guided intermediate resampling filter. Statistics and Computing, tools:::Rd_expr_doi("10.1007/s11222-020-09957-3")
he10coordinates
, he10measles
, he10mle
, he10demography
Other spatPomp model generators:
bm()
,
bm2()
,
gbm()
,
lorenz()
,
measles()
# Complete examples are provided in the package tests
if (FALSE) {
m <- he10(U = 5)
# See all the model specifications of the object
spy(m)
}
Run the code above in your browser using DataLab