News blog
Blog archive
Subscribe to this newsfeed
pomp version 6.1 released
8 January 2025
pomp version 6.1 has been released to CRAN and will soon appear on a mirror near you. This release contains breaking changes as well as some additional features.
User-visible changes
New interface for userdata
becomes mandatory
Since version 5.8.4, the manner in which one provides extra elements to basic model components (i.e., beyond parameters, latent state variables, covariates, time, and observations: the so-called userdata
) has changed.
During a grace period, the old method still worked, though it generated a warning.
In versions 6.X, an error will be generated.
To supply additional elements to the basic model components, pass them as elements of a named list via the userdata
argument, which can be furnished to any elementary algorithm or estimation algorithm, and of course, to the pomp constructor itself.
Passing arguments by position now results in an error in most cases
In calls to pomp elementary and inference algorithms, it is now necessary to pass arguments by name and not by position. This has always been good practice, but from this release, calls that rely on the position of arguments will typically generate errors.
Feature enhancements
Initial value parameters in mif2
It is now possible to specify more than one lag in the ivp
function, which is evaluated only when the mif2
perturbations are specified.
See ?mif2
.
Keeping a database of explorations
In conducting an extensive exploration of a likelihood surface, it is useful to maintain a database of places visited, together with associated likelihood values.
The new function append_data
assists in this.
It simply appends a given data frame to an existing CSV file (creating the file if it does not exist).
Expectation of an Euler-multinomial random variable
The new function eeulermultinom
gives the expectation of an Euler-multinomial random variable.
There is also an interface to this function in the C API.
Other changes
The save.states
option to pfilter
has changed.
See pfilter
and saved_states
for details.
The deprecated options will still work for the present, but will generate a warning, with advice about how to change.
Ultimately, these options will be removed.
pomp version 6
10 December 2024
The current release contains two breaking changes over pomp versions 5.11.X.X.
-
With version 5.8.4, the manner in which one supplies extra model elements (the so-called
userdata
, elements other than parameters, state variables, observations, and covariates that are available to the basic model components) was changed. The old way of doing things remained available, but using it generated a warning message, with the promise that the warning would someday become an error. That day has come. As of version 6, to supply userdata to the basic model components, one must explicitly use theuserdata
argument in pomp constructors, elementary algorithms, or inference algorithms. Users who have already adjusted their codes to eliminate the aforementioned warning should experience no change in pomp behavior. -
While it has always been good practice in pomp function calls to pass arguments by name (as opposed to by position), with version 6.0.1, this becomes (almost) mandatory. This is meant to prevent a class of difficult-to-trace errors in which an unnamed argument is passed to a lower-level function and potentially ignored, silently. The chief exception to this rule is the first argument in many pomp functions, which is typically a pomp object or a data frame. Users who are in the habit of passing named arguments will not notice any change in pomp behavior.
pomp version 5.11 released
13 September 2024
pomp version 5.11 has been released to CRAN and will soon appear on CRAN mirrors everywhere. This is a bug-fix release, with no user-visible changes.
See the package NEWS for details.
pomp version 5.10 released
1 July 2024
pomp version 5.10 has been released to CRAN and will soon appear on CRAN mirrors everywhere.
This release contains a change to the onestep
rprocess simulator and some minor documentation improvements.
User-visible change
Suppose P
is a ‘pomp’ object, with an rprocess component specified as onestep(f)
, where f
is a C snippet or R function.
Suppose also that t==time(P,t0=TRUE)
.
In previous package versions, f
would be executed to go from t[i]
to t[i+1]
if and only if t[i+1] > t[i]
.
As of version 5.9.1, f
is executed exactly once even if t[i] == t[i+1]
.
If f
is written correctly, this change will introduce no error.
However, if the user’s code assumes that the time-step t[i+1]-t[i]
(furnished to f
as delta.t
if f
is an R function and dt
if it is a C snippet) is strictly positive, then this change may introduce errors.
Please contact me via the package Issues page if you notice a change in the behavior of your codes upon update to pomp version 5.10.
Blog archive
Subscribe to this newsfeed