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
mcap
function.
Deterministic trajectories and trajectory matching
-
The behavior of
trajectory
now 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 totrajectory
just 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_control
argument 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 theformat
argument as insimulate
. The default return-value format fortrajectory
now 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
rbetabinom
anddbetabinom
functions, long present as part of the C API, are now available as R functions. -
parmat
can now take a data frame of parameters and convert it into a matrix suitable for furnishing to theparams
argument of any pomp function. Also,parmat
now 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)<-value
as with ‘pomp’ objects. -
The
forecast
method now works for ‘pfilterd_pomp’ objects (i.e., results ofpfilter
,pmcmc
, ormif2
computations). -
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. -
bake
andstew
now 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.pomp
object, 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.