mif(object, ...)
## S3 method for class 'pomp':
mif(object, Nmif = 1, start, pars, ivps = character(0),
particles, rw.sd, Np, ic.lag, var.factor, cooling.factor,
weighted = TRUE, tol = 1e-17, max.fail = 0,
verbose = getOption("verbose"))
## S3 method for class 'mif':
mif(object, Nmif, \dots)
## S3 method for class 'mif':
continue(object, Nmif = 1, \dots)
pomp
.pars
must have a positive random-walk standard deviation specified in rw.sd
.
Leaving pars
unspecified is equiivps
must have a positive random-walk standard deviation specified in rw.sd
.particles(Np,center,sd,...)
which sets up the starting particle matrix by drawing a sample of size Np
from the starting particle distribution centered at center
and of width sd
.
pars
(i.e., not to those named in ivps
).
The algorithm requires that the randrw.sd
.
In particular, the width of the distribution of particles at the start of the first MIF iteration will be random.walk.
alpha
.tol
are considered to be 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.mif.profile.design
sets up a MIF likelihood-profile calculation.
It returns a list of lists, each one of which contains a mif
object.
Running mif
or continue
on each of these will maximize the likelihood over the desired parameters, while holding others fixed.
Each mif
calculation is independent of the others: the computation is therefore readily parallelized.
The list returned by mif.profile.design
will have one element for every row in do.call(expand.grid,profile)
.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-class
).
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
.
A. A. King, E. L. Ionides, M. Pascual, and M. J. Bouma, Inapparent infections and cholera dynamics, Nature, 454:877--880, 2008.
mif-class
, mif-methods
, pomp
, pomp-class
, pfilter
.
See the