probe
applies one or more probe.match
calls an optimizer to adjust model parameters to do probe-matching, i.e., to minimize the discrepancy between simulated and actual data.probe(object, probes, ...)
## S3 method for class 'pomp':
probe(object, probes, params, nsim, seed = NULL, \dots)
## S3 method for class 'probed.pomp':
probe(object, probes, params, nsim, seed = NULL, \dots)
probe.match(object, start, est = character(0),
probes, weights,
nsim, seed = NULL,
method = c("subplex","Nelder-Mead","SANN"),
verbose = getOption("verbose"),
eval.only = FALSE, fail.value = NA, ...)
pomp
.pomp
.
A vector-valued probe must always return a vector of the same size.params=coef(object)
.NULL
, the random number generator will be initialized with this seed for simulations.
See simulate-pomp.probes
.TRUE
, no optimization is attempted.
Instead, the probe-mismatch value is simply evaluated at the start
parameters.NA
, this value is substituted for non-finite values of the objective function.spec
, these are currently ignored.
In the case of spec.match
, these are passed to optim
or subplex
in the control
list.probe
returns an object of class probed.pomp
.
probe.match
returns an object of class probe.matched.pomp
.probe
results in the evaluation of the probe(s) in probes
on the data.
Additionally, nsim
simulated data sets are generated (via a call to simulate
) and the probe(s) are applied to each of these.
The results of the probe computations on real and simulated data are stored in an object of class probed.pomp
. A call to probe.match
results in an attempt to optimize the agreement between model and data, as measured by the specified probes, over the parameters named in est
.
The results, including coefficients of the fitted model and values of the probes for data and fitted-model simulations, are stored in an object of class probe.matched.pomp
.
probe.match
data(ou2)
good <- probe(
ou2,
probes=list(
y1.mean=probe.mean(var="y1"),
y2.mean=probe.mean(var="y2"),
y1.sd=probe.sd(var="y1"),
y2.sd=probe.sd(var="y2"),
extra=function(x)max(x["y1",])
),
nsim=500
)
summary(good)
plot(good)
ou2.bad <- ou2
coef(ou2.bad,c("x1.0","x2.0","alpha.1","alpha.4")) <- c(0,0,0.1,0.2)
bad <- probe(
ou2.bad,
probes=list(
y1.mean=probe.mean(var="y1"),
y2.mean=probe.mean(var="y2"),
y1.sd=probe.sd(var="y1"),
y2.sd=probe.sd(var="y2"),
extra=function(x)range(x["y1",])
),
nsim=500
)
summary(bad)
plot(bad)
Run the code above in your browser using DataLab