| mif {pomp} | R Documentation |
The MIF algorithm for estimating the parameters of a partially-observed Markov process.
mif(object, ...)
## S4 method for signature 'pomp':
mif(object, Nmif, start, pars, ivps = character(0),
particles, rw.sd, alg.pars, weighted = TRUE,
tol = 1e-17, warn = TRUE, max.fail = 0, verbose = FALSE)
## S4 method for signature 'mif':
mif(object, ...)
## S4 method for signature 'mif':
continue(object, Nmif, ...)
object |
An object of class pomp. |
Nmif |
The number of MIF iterations to perform. |
start |
The initial guess of the parameters. This must be a named vector. |
pars |
Character vector of names of ordinary parameters to be estimated. |
ivps |
Character vector of names of initial-value parameters to be estimated. |
particles |
Function of prototype particles(Np,center,sd,...) which sets up the initial particle matrix by drawing a sample of size Np from the initial particle distribution centered at center and of width sd.
If particles is not supplied by the user, the default behavior is to draw the particles from a multivariate normal distribution with mean center and standard deviation sd.
|
rw.sd |
The intensity of the random walk. |
alg.pars |
A named list of algorithm parameters.
This consists of
|
weighted |
Should a weighted average be used?
If weighted=F, the MIF update is not used;
instead, an unweighed average of the filtering means is used for the update.
|
tol |
Particles with log likelihood below tol are considered to be "lost".
A filtering failure occurs when, at some time point, all particles are lost.
|
warn |
Should a warning be generated when a filtering failure occurs? |
max.fail |
Maximum number of filtering failures permitted. If the number of failures exceeds this number, execution will terminate with an error. |
verbose |
logical; if TRUE, print progress reports. |
... |
Additional arguments that can be used to override the defaults. |
To re-run a sequence of MIF iterations, one can use the mif method on a mif object.
The call sequence is mif(object).
By default, the same parameters used for the original MIF run are re-used.
If one does specify additional arguments, these will override the defaults.
An exception is that one cannot override the particles function.
One can continue a series of MIF iterations from where one left off.
The call sequence is continue(object, Nmif).
This will perform Nmif additional MIF iterations on the mif object object.
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.
Additional arguments are passed to mif.
This feature can be used to change any of the parameters (except the particles function).
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 should be assumed to be an 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-class).
particles returns a length(center) x Np matrix with rownames.
Each column represents a distinct particle.
The rownames are used by the algorithms (see mif, pfilter).
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 corresponding to the parameters specified in center.
Aaron A. King (kingaa at umich dot edu)
E. L. Ionides, C. Bret{'o}, & A. A. King, Inference for nonlinear dynamical systems, Proc. Natl. Acad. Sci. U.S.A., 103:18438–18443, 2006.
mif-class, mif-methods, pomp, pomp-class, pfilter.
See the "intro_to_pomp" vignette for an example.