iubf {spatPomp} | R Documentation |
Iterated Unadapted Bagged Filter (IUBF)
Description
An algorithm for estimating the parameters of a spatiotemporal partially-observed Markov process.
Running iubf
causes the algorithm to perform a specified number of iterations of unadapted simulations with parameter perturbation and parameter resamplings.
At each iteration, unadapted simulations are performed on a perturbed version of the model, in which the parameters to be estimated are subjected to random perturbations at each observation.
After cycling through the data, each replicate's weight is calculated and is used to rank the bootstrap replictates. The highest ranking replicates are recycled into the next iteration.
This extra variability introduced through parameter perturbation effectively smooths the likelihood surface and combats particle depletion by introducing diversity into particle population.
As the iterations progress, the magnitude of the perturbations is diminished according to a user-specified cooling schedule.
Usage
## S4 method for signature 'spatPomp'
iubf(
object,
Nubf = 1,
Nrep_per_param,
Nparam,
nbhd,
prop,
rw.sd,
cooling.type = c("geometric", "hyperbolic"),
cooling.fraction.50,
tol = (1e-18)^17,
verbose = getOption("verbose"),
...
)
Arguments
object |
A |
Nubf |
The number of iterations to perform |
Nrep_per_param |
The number of replicates used to estimate the likelihood at a parameter |
Nparam |
The number of parameters that will undergo the iterated perturbation |
nbhd |
A neighborhood function with three arguments: |
prop |
A numeric between 0 and 1. The top |
rw.sd |
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 ifelse(time==time[1],s,0). Likewise, 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. |
cooling.type , cooling.fraction.50 |
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.
|
tol |
If the resampling weight for a particle is zero due to floating-point precision issues, it is set to the value of |
verbose |
logical; if |
... |
additional arguments supply new or modify existing model characteristics or components.
See When named arguments not recognized by |
Value
Upon successful completion, iubf()
returns an object of class
‘iubfd_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()
. The
algorithmic parameters used to run iubf()
are also included.
Methods
The following methods are available for such an object:
coef
extracts the point estimate
Author(s)
Kidus Asfaw
References
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. doi:10.48550/arXiv.2101.01157
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
See Also
likelihood evaluation algorithms: girf()
, enkf()
, bpfilter()
, abf()
, abfir()
Other likelihood maximization algorithms:
ibpf()
,
ienkf()
,
igirf()