abf {spatPomp} | R Documentation |
Adapted Bagged Filter (ABF)
Description
An algorithm for estimating the likelihood of a spatiotemporal partially-observed Markov process model.
Running abf
causes the algorithm to run bootstrap replicate jobs which each yield an imperfect adapted simulation. Simulating from the "adapted filter"
distribution runs into a curse of dimensionality (COD) problem, which is mitigated by keeping particles in each replicate close to each other through resampling down
to one particle per replicate at each observation time point.
The adapted simulations are then weighted in a way that mitigates COD by making a weak coupling assumption to get an approximate filter distribution.
As a by-product, we also get an estimate of the likelihood of the data.
Usage
## S4 method for signature 'spatPomp'
abf(
object,
Nrep,
Np,
nbhd,
params,
tol = 1e-100,
...,
verbose = getOption("verbose", FALSE)
)
## S4 method for signature 'abfd_spatPomp'
abf(object, Nrep, Np, nbhd, tol, ..., verbose = getOption("verbose", FALSE))
Arguments
object |
A |
Nrep |
The number of bootstrap replicates for the adapted simulations. |
Np |
The number of particles used within each replicate for the adapted simulations. |
nbhd |
A neighborhood function with three arguments: |
params |
Parameter vector, required if not available from the spatPomp model object. |
tol |
If the resampling weight for a particle is zero due to floating-point precision issues, it is set to the value of |
... |
Additional arguments can be used to replace model components. |
verbose |
logical; if |
Value
Upon successful completion, abf()
returns an object of class
‘abfd_spatPomp’ containing the algorithmic parameters used to run abf()
and the estimated likelihood.
Methods
The following methods are available for such an object:
logLik
yields an estimate of the log-likelihood of the data under the model.
Author(s)
Kidus Asfaw
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
See Also
likelihood maximization algorithms: ienkf()
, igirf
, iubf
, ibpf
Other likelihood evaluation algorithms:
abfir()
,
bpfilter()
,
enkf()
,
girf()
Examples
# Complete examples are provided in the package tests
## Not run:
# Create a simulation of a Brownian motion
b <- bm(U=2, N=5)
# Create a neighborhood function mapping a point in space-time
# to a list of neighboring points in space-time
bm_nbhd <- function(object, time, unit) {
nbhd_list = list()
if(time > 1 && unit > 1){
nbhd_list = c(nbhd_list, list(c(unit-1, time-1)))
}
return(nbhd_list)
}
# Run ABF specified number of Monte Carlo replicates and particles per replicate
abfd_bm <- abf(b, Nrep=2, Np=10, nbhd=bm_nbhd)
# Get the likelihood estimate from ABF
logLik(abfd_bm)
## End(Not run)