pomp
object,
encoding 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, skeleton.type = c("map","vectorfield"), skelmap.delta.t = 1,
initializer, rprior, dprior, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform, globals)
## S3 method for class 'numeric':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model,
skeleton, skeleton.type = c("map","vectorfield"), skelmap.delta.t = 1,
initializer, rprior, dprior, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform, globals)
## S3 method for class 'matrix':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model,
skeleton, skeleton.type = c("map","vectorfield"), skelmap.delta.t = 1,
initializer, rprior, dprior, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform, globals)
## S3 method for class 'pomp':
pomp(data, times, t0, \dots, rprocess, dprocess, rmeasure, dmeasure,
measurement.model, skeleton, skeleton.type, skelmap.delta.t,
initializer, rprior, dprior, params, covar, tcovar,
obsnames, statenames, paramnames, covarnames, zeronames,
PACKAGE, parameter.transform, parameter.inv.transform, globals)
data
can be specified as a vector, a matrix, a data-frame, or a pomp
object. If data
is a numeric vector, times
must be a numeric v
t0
.
This must be no later than the time of the first observation, i.e., t0 <= times[1]<="" code="">.=>
rprocess
is to use one of the plugins
pdprocess
is to use one of the
x
, time t
, and pay
given x
, t
rmeasure
and dmeasure
functions.
If measurement.model
is given it overrides any specskeleton
specifies the deterministic skeleton of the unobserved Markov process.
If we are dealing with a discrete-time Markov process, its deterministic skeleton is a map:
indicate this by specifying skeleton.type="
params
, of parameters. By default (i.e., if it is unspecified when pomp
is called), the in
params
,double
.covar
is the table (one column per variable);
tcovar
the corresponding times (one entry per row of covar
). covar
can be specified as either a matrix or a dat
rprocess
, dprocess
, rm
params
and ...
.
parameter.transform
should transform parameters from the user's scale to the scale that rproc
pomp
uses Csnippets
.
If no Csnippets
are used, globa
pomp
will be stored in the pomp
object and passed as arguments to each of the basic functions whenever they are evaluated.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 probability distribution 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 has not been specified, an informative error will be generated.rprocess
, dprocess
, rmeasure
, dmeasure
, and skeleton
in any given problem.
Each algorithm makes use of a different subset of these functions.
Specification of process-model codes rprocess
and/or dprocess
in most cases is facilitated by so-called plugins
that have been developed to handle common use-cases.
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. In specific cases, it may be possible to obtain increased computational efficiency by writing custom versions of rprocess
and/or dprocess
.
See the
The following is a guide to writing the measurement-model, deterministic skeleton, and initializer 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 "Introduction to pomp"
## and "Advanced topics in pomp" documents,
## the demos, and the examples provided with the package, e.g.:
pompExample()
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