Version 4.1 of pomp is now on CRAN and coming soon to a mirror near you. This release contains quite a number of changes, including new features, some user-interface improvements, and some changes to the examples provided with the package. As the increment to the major version number suggests, a few of these changes are not backwardly compatible with versions 3.X.
New features
Monte Carlo-adjusted profile likelihood
- Computation of Monte Carlo-adjusted profile likelihood is now facilitated by the new
mcapfunction.
Deterministic trajectories and trajectory matching
-
The behavior of
trajectorynow fully conforms to the behavior of other pomp elementary algorithms. In particular, one can now add, remove, or modify basic model components in a call totrajectoryjust as one can withsimulate,pfilter,probe, etc. Before version 4, additional arguments totrajectory(i.e., those passed via...) were passed on to the deSolve ODE integrator in the case of continuous-time deterministic skeletons (i.e., vectorfields) and ignored in the case of discrete-time skeletons (i.e., maps). As of version 4, in order to adjust ODE integrator settings it is necessary to use theode_controlargument oftrajectory. This behavior matches that oftraj_objfun. -
It is now possible to create a ‘pomp’ object from scratch using
trajectory, by specifying the rinit and skeleton components. Prior to version 4, in order to do so, it was necessary to first create a dummy data set, make a call topomp, and pass the resulting object totrajectory. This can now be achieved in one call, just as in the other elementary algorithms. -
In a call to
trajectory, the user now has the option to have the results returned as one or ‘pomp’ objects. This is controlled by theformatargument as insimulate. The default return-value format fortrajectorynow matches that ofsimulate.
Ensemble Kalman filter methods
- Two new basic model components have been introduced. These are:
-
The ensemble adjusted Kalman filter (
eakf) has been refactored. It now makes use of the new emeasure and vmeasure basic components to compute an approximation of the linear relationship between the latent state and the observed variables. - The basic (linear, Gaussian) Kalman filter is now available as
kalmanFilter.
User interface changes
-
It is now possible to plot lists of ‘pomp’ and ‘pomp’-derived objects using a single call to
plot. -
The
rbetabinomanddbetabinomfunctions, long present as part of the C API, are now available as R functions. -
parmatcan now take a data frame of parameters and convert it into a matrix suitable for furnishing to theparamsargument of any pomp function. Also,parmatnow takes an optional argument,names, which allows the user to name the parameter sets. -
It is now possible to adjust the parameters in an
objfun(objective function) object usingcoef(object)<-valueas with ‘pomp’ objects. -
The
forecastmethod now works for ‘pfilterd_pomp’ objects (i.e., results ofpfilter,pmcmc, ormif2computations). -
Independent realizations of the stochastic processes modeled in pomp are now distinguished by different values of the variable
.id. This behavior is now uniform throughout the package. -
bakeandstewnow send messages instead of warnings when they recompute an archive due to a change in code or dependencies. -
The names of the variables returned by
as.data.frame, as applied to apfilterd.pompobject, have changed.
Changes to examples
- The SIR examples
sir()andsir2()now use a negative binomial measurement model, in keeping with practices we have been recommending in our short course.