Description Usage Arguments Re-running aif Iterations Continuing aif Iterations Using aif to estimate initial-value parameters only Details Author(s) References See Also
Iterated smoothing algorithms for estimating the parameters of a partially-observed Markov process.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ## S4 method for signature 'pomp'
aif(object, Nis = 1, start, pars, ivps = character(0),
particles, rw.sd, Np, ic.lag, var.factor, lag,
cooling.type = c("geometric","hyperbolic"),
cooling.fraction, cooling.factor,
method = c("aif","ris1","is1"),
tol = 1e-17, max.fail = Inf,
verbose = getOption("verbose"), transform = FALSE, ...)
## S4 method for signature 'pfilterd2.pomp'
aif(object, Nis = 1, Np, tol, ...)
## S4 method for signature 'aif'
aif(object, Nis, start, pars, ivps,
particles, rw.sd, Np, ic.lag, lag, var.factor,
cooling.type, cooling.fraction,
method, tol, transform, ...)
## S4 method for signature 'aif'
continue(object, Nis = 1, ...)
|
object |
An object of class |
Nis |
The number of filtering iterations to perform. |
start |
named numerical vector; the starting guess of the parameters. |
pars |
optional character vector naming the ordinary parameters to be estimated.
Every parameter named in |
ivps |
optional character vector naming the initial-value parameters (IVPs) to be estimated.
Every parameter named in |
particles |
Function of prototype |
rw.sd |
numeric vector with names; the intensity of the random walk to be applied to parameters.
The random walk is only applied to parameters named in |
Np |
the number of particles to use in filtering.
This may be specified as a single positive integer, in which case the same number of particles will be used at each timestep.
Alternatively, if one wishes the number of particles to vary across timestep, one may specify |
ic.lag |
a positive integer;
the timepoint for fixed-lag smoothing of initial-value parameters.
The |
var.factor |
a positive number;
the scaling coefficient relating the width of the starting particle distribution to |
lag |
a positive integer; the timepoint for fixed-lag smoothing parameters estimation. |
cooling.type, cooling.fraction, cooling.factor |
specifications for the cooling schedule, i.e., the manner in which the intensity of the parameter perturbations is reduced with successive filtering iterations.
|
method |
|
tol |
See the description under |
max.fail |
See the description under |
verbose |
logical; if TRUE, print progress reports. |
transform |
logical;
if |
... |
additional arguments that override the defaults. |
To re-run a sequence of aif iterations, one can use the aif
method on a aif
object.
By default, the same parameters used for the original aif 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.
One can resume a series of aif iterations from where one left off using the continue
method.
A call to aif
to perform Nis=m
iterations followed by a call to continue
to perform Nis=n
iterations will produce precisely the same effect as a single call to aif
to perform Nis=m+n
iterations.
By default, all the algorithmic parameters are the same as used in the original call to aif
.
Additional arguments will override the defaults.
One can use aif fixed-lag smoothing to estimate only initial value parameters (IVPs).
In this case, pars
is left empty and the IVPs to be estimated are named in ivps
.
If theta
is the current parameter vector, then at each aif 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 aif
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)
.
If 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
.
Dao Nguyen dxnguyen at olemiss dot edu, Xin Dang xdang at olemiss dot edu, Duc Anh Doan ddoan at olemiss dot edu
D. Nguyen, E. L. Ionides, A second-order iterated smoothing, Computational Statistics, 2017.
A., Doucet, P. E. Jacob, and S. Rubenthaler, Derivative-free estimation of the score vector and observed information matrix with application to state-space models, Preprint arXiv:1304.5768.
A. A. King, D. Nguyen, and E. L. Ionides, Statistical inference for partially observed Markov processes via the R package pomp, Journal of Statistical Software, 2016.
aif-methods
, pfilter2
.
See the “intro_to_aif” vignette for examples.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.