An implementation of a parameter estimation algorithm that uses the ensemble Kalman filter (Evensen, G. (1994)) to perform the filtering step in the parameter-perturbed iterated filtering scheme of Ionides et al. (2015) following the pseudocode in Asfaw, et al. (2020).
# S4 method for spatPomp
ienkf(
data,
Nenkf = 1,
rw.sd,
cooling.type = c("geometric", "hyperbolic"),
cooling.fraction.50,
Np,
...,
verbose = getOption("verbose", FALSE)
)
Upon successful completion, ienkf
returns an object of class
‘ienkfd_spatPomp’. This object contains the convergence record of the iterative algorithm with
respect to the likelihood and the parameters of the model (which can be accessed using the traces
attribute) as well as a final parameter estimate, which can be accessed using the coef()
.
an object of class spatPomp
number of iterations of perturbed EnKF.
specification of the magnitude of the random-walk perturbations that will be applied to some or all model parameters.
Parameters that are to be estimated should have positive perturbations specified here.
The specification is given using the rw_sd
function, which creates a list of unevaluated expressions.
The latter are evaluated in a context where the model time variable is defined (as time
).
The expression ivp(s)
can be used in this context as shorthand for
ifelse(time==time[1],s,0).
Likewise, ivp(s,lag)
is equivalent to
ifelse(time==time[lag],s,0).
See below for some examples.
The perturbations that are applied are normally distributed with the specified s.d. If parameter transformations have been supplied, then the perturbations are applied on the transformed (estimation) scale.
specifications for the cooling schedule,
i.e., the manner and rate with which the intensity of the parameter perturbations is reduced with successive filtering iterations.
cooling.type
specifies the nature of the cooling schedule.
See below (under “Specifying the perturbations”) for more detail.
The number of particles used within each replicate for the adapted simulations.
Additional arguments can be used to replace model components.
logical; if TRUE
, messages updating the user on progress will be printed to the console.
The following methods are available for such an object:
coef
gives the Monte Carlo estimate of the maximum likelihood.
Kidus Asfaw
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")
Evensen, G. (1994) Sequential data assimilation with a nonlinear quasi-geostrophic model using Monte Carlo methods to forecast error statistics Journal of Geophysical Research: Oceans 99:10143--10162
Evensen, G. (2009) Data assimilation: the ensemble Kalman filter Springer-Verlag.
Anderson, J. L. (2001) An Ensemble Adjustment Kalman Filter for Data Assimilation Monthly Weather Review 129:2884--2903
likelihood evaluation algorithms: girf()
, enkf()
, bpfilter()
, abf()
, abfir()
Other likelihood maximization algorithms:
ibpf()
,
igirf()
,
iubf()