## S3 method for class 'pomp':
mif(object, Nmif = 1, start, pars, ivps = character(0),
particles, rw.sd, Np, ic.lag, var.factor,
cooling.type, cooling.fraction, cooling.factor,
method = c("mif","unweighted","fp","mif2"),
tol = 1e-17, max.fail = Inf,
verbose = getOption("verbose"), transform = FALSE, ...)
## S3 method for class 'pfilterd.pomp':
mif(object, Nmif = 1, Np, tol, \dots)
## S3 method for class 'mif':
mif(object, Nmif, start, ivps,
particles, rw.sd, Np, ic.lag, var.factor,
cooling.type, cooling.fraction,
method, tol, transform, \dots)
## S3 method for class 'mif':
continue(object, Nmif = 1, \dots)
mif
method on a mif
object.
By default, the same parameters used for the original MIF run are re-used (except for weighted
, tol
, max.fail
, and verbose
, the defaults of which are shown above).
If one does specify additional arguments, these will override the defaults.continue
method.
A call to mif
to perform Nmif=m
iterations followed by a call to continue
to perform Nmif=n
iterations will produce precisely the same effect as a single call to mif
to perform Nmif=m+n
iterations.
By default, all the algorithmic parameters are the same as used in the original call to mif
.
Additional arguments will override the defaults.pars
is left empty and the IVPs to be estimated are named in ivps
.
If theta
is the current parameter vector, then at each MIF iteration, Np
particles are drawn from a distribution centered at theta
and with width proportional to var.factor*rw.sd
, a particle filtering operation is performed, and theta
is replaced by the filtering mean at time(object)[ic.lag]
.
Note the implication that, when mif
is used in this way on a time series any longer than ic.lag
, unnecessary work is done.
If the time series in object
is longer than ic.lag
, consider replacing object
with window(object,end=ic.lag)
.particles
is not specified, the default behavior is to draw the particles from a multivariate normal distribution.
It is the user's responsibility to ensure that, if the optional particles
argument is given, that the particles
function satisfies the following conditions: particles
has at least the following arguments:
Np
, center
, sd
, and ...
.
Np
may be assumed to be a positive integer;
center
and sd
will be named vectors of the same length.
Additional arguments may be specified;
these will be filled with the elements of the userdata
slot of the underlying pomp
object (see pomp
).
particles
returns a length(center)
x Np
matrix with rownames matching the names of center
and sd
.
Each column represents a distinct particle.
The center of the particle distribution returned by particles
should be center
.
The width of the particle distribution should vary monotonically with sd
.
In particular, when sd=0
, the particles
should return matrices with Np
identical columns, each given by the parameters specified in center
.
E. L. Ionides, A. Bhadra, Y. Atchad{\'e}, & A. A. King, Iterated filtering, Annals of Statistics, 39:1776--1802, 2011.
A. A. King, E. L. Ionides, M. Pascual, and M. J. Bouma, Inapparent infections and cholera dynamics, Nature, 454:877--880, 2008.
mif-methods
, pomp
, pfilter
.
See the