pomp object to hold a partially-observed Markov process model together with a uni- or multi-variate time series.## S3 method for class 'data.frame':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model,
skeleton = NULL, skeleton.type = c("map","vectorfield"), skelmap.delta.t = 1,
initializer, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform)
## S3 method for class 'numeric':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model,
skeleton = NULL, skeleton.type = c("map","vectorfield"), skelmap.delta.t = 1,
initializer, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform)
## S3 method for class 'matrix':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model,
skeleton = NULL, skeleton.type = c("map","vectorfield"), skelmap.delta.t = 1,
initializer, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform)
## S3 method for class 'pomp':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model,
skeleton, skeleton.type, skelmap.delta.t,
initializer, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform)pomp.
If data is an object of class pomp, then by default the returned pomp object is identical to data.
If additional arguments are given, these override the defaults.pomp, but complete error checking is impossible.
If the user-specified functions do not conform to the above specifications (see Details), then the results may be invalid.
In particular, if both rmeasure and dmeasure are specified, the user should verify that these two functions correspond to the same model and if skeleton is specified, the user is responsible for verifying that it corresponds to the true deterministic skeleton of the model.
Each rprocess, dprocess, rmeasure, dmeasure, skeleton).
If an algorithm requires a component that was not given in the construction of the pomp object, an error is generated.rprocess, dprocess, rmeasure, dmeasure, and skeleton in any given problem.
Each algorithm makes use of a different subset of these functions.
In general, the specification of process-model codes rprocess and/or dprocess can be somewhat nontrivial:
for this reason, plugins have been developed to streamline this process for the user.
Currently, if one's process model evolves in discrete time or one is willing to make such an approximation (e.g., via an Euler approximation), then the euler.sim, discrete.time.sim, or onestep.sim plugin for rprocess and onestep.dens plugin for dprocess are available.
For exact simulation of certain continuous-time Markov chains, an implementation of Gillespie's algorithm is available (see gillespie.sim).
To use the plugins, consult the help documentation (?plugins) and the vignettes. It is anticipated that, in specific cases, it will be possible to obtain increased computational efficiency by writing custom versions of rprocess and/or dprocess.
See the
The measurement-model, deterministic skeleton, and initializer components are easily specified without the use of plugins. The following is a guide to writing these components. [object Object],[object Object],[object Object],[object Object]
time,
time<-,
timezero,
timezero<-,
coef,
coef<-,
obs,
states,
window,
as.data.frame.pomp## For examples, see the vignettes, the data()-loadable
## example \code{pomp} objects, and the provided example files.
vignette("intro_to_pomp")
vignette("advanced_topics_in_pomp")
data(package="pomp")
pomp.home <- system.file("examples",package="pomp")
pomp.examples <- list.files(pomp.home)
file.show(
file.path(pomp.home,pomp.examples),
header=paste("======",pomp.examples,"=======")
)Run the code above in your browser using DataLab