Version 1.1.1.1 has been released and is coming soon to a CRAN mirror near you. Since version 0.65-1, there have been many changes to pomp, including new features, some bug fixes, and algorithmic improvements. Some of the highlights include:
New features
-
A full-featured version of IF2, an improved iterated filtering algorithm, is now available as
mif2
. This allows a more general structure for the random perturbations applied to parameters and is generally much more efficient and stable than IF1.mif2
should be preferred tomif
in almost all circumstances. -
There is a new, adaptive MCMC proposal function,
mvn.rw.adaptive
that can be used inpmcmc
andabc
. This can greatly increase the efficiency of these samplers. -
By default, when
Csnippet
s are used, the source code is now stored internally to thepomp
object. When apomp
object is used, a test is first performed to see if the needed shared-object file exists. If it does not, the source code is written to a file in the session’s temporary directory, which is then compiled and loaded. This feature allowspomp
objects to be stored and reused across R sessions, including parallel sessions on a cluster. -
A
pomp
object’s initializer can now be specified as aCsnippet
. -
pmcmc
andpfilter
now have the capability of saving filtered trajectories. These can be extracted using the new methodfilter.traj
. The principal use will be in conjunction withpmcmc
, where, upon convergence to the posterior, samples from the filtered trajectories are draws from the posteriorProb[x[1:T] | y[1:T]]
. Thanks to Sebastian Funk for initiating this development. -
partrans
andparmat
have been jiggered to make them play better withreshape2::melt
. -
Measles data from England and Wales, kindly provided by Ben Bolker, are now included as
ewmeas
andewcitmeas
. -
The new functions
bake
andstew
faciliate storing expensive calculations for later retrieval in a transparent fashion. These functions have arguments that allow the control of the RNG: one can now set the state (and kind) of the RNG in a self-contained fashion. -
The new function
freeze
allows control of the RNG similarly. -
There is now a
coef
method formifList
andmif2List
objects. -
In the
pomp
constructor, unrecognized arguments are stored internally for use with user-supplied model functions. Now, an informative message is generated when this happens. Previously, this silent behavior was a source of confusion for some users.
Bug fixes
-
logmeanexp
had used a delta-method estimate of the variance inlog(mean(exp(x)))
whense = TRUE
. This gave misleadingly small values when the variance inexp(x)
was large. The newlogmeanexp
uses a jackknife estimate of the variance. This is still conservative, in that it is biased upwards, but is more robust. -
The new
covmat
method, applied toabc
,abcList
,pmcmc
, orpmcmcList
objects, returns an inflated empirical covariance matrix suitable for use as input to the proposal generatormvn.rw
.
Deprecated and defunct
- Some deprecated functionality has been removed:
- The deprecated
transform.params
argument fromnlf
has been removed. - The deprecated
pars
andrw.sd
arguments fromabc
andpmcmc
have been removed. - The deprecated
data.array
method has been removed.
- The deprecated
-
The
seed
argument ofbsmc
andbsmc2
has been removed. Its use now generates a warning, stating that it has no effect. -
The
seed
argument topfilter
is now deprecated and will be removed soon. Equivalent functionality is provided viafreeze
,bake
, orstew
. pompBuilder
, which has not been actively maintained for some time due to the its being superseded by theCsnippet
facility, is now no longer exported.