probe function

Probes (AKA summary statistics)

Probes (AKA summary statistics)

Probe a partially-observed Markov process by computing summary statistics and the synthetic likelihood. methods

## S4 method for signature 'data.frame' probe( data, ..., probes, nsim, seed = NULL, params, rinit, rprocess, rmeasure, verbose = getOption("verbose", FALSE) ) ## S4 method for signature 'pomp' probe( data, ..., probes, nsim, seed = NULL, verbose = getOption("verbose", FALSE) ) ## S4 method for signature 'probed_pomp' probe( data, ..., probes, nsim, seed = NULL, verbose = getOption("verbose", FALSE) ) ## S4 method for signature 'probe_match_objfun' probe(data, ..., seed, verbose = getOption("verbose", FALSE)) ## S4 method for signature 'objfun' probe(data, ..., seed = NULL)

Arguments

  • data: either a data frame holding the time series data, or an object of class pomp , i.e., the output of another pomp calculation. Internally, data will be coerced to an array with storage-mode double.
  • ...: additional arguments are passed to pomp. This allows one to set, unset, or modify basic model components within a call to this function.
  • probes: a single probe or a list of one or more probes. A probe is simply a scalar- or vector-valued function of one argument that can be applied to the data array of a pomp . A vector-valued probe must always return a vector of the same size. A number of useful probes are provided with the package: see basic probes .
  • nsim: the number of model simulations to be computed.
  • seed: optional integer; if set, the pseudorandom number generator (RNG) will be initialized with seed. The RNG will be restored to its original state afterward.
  • params: optional; named numeric vector of parameters. This will be coerced internally to storage mode double.
  • rinit: simulator of the initial-state distribution. This can be furnished either as a C snippet, an function, or the name of a pre-compiled native routine available in a dynamically loaded library. Setting rinit=NULL sets the initial-state simulator to its default. For more information, see rinit specification .
  • rprocess: simulator of the latent state process, specified using one of the rprocess plugins . Setting rprocess=NULL removes the latent-state simulator. For more information, see rprocess specification for the documentation on these plugins .
  • rmeasure: simulator of the measurement model, specified either as a C snippet, an function, or the name of a pre-compiled native routine available in a dynamically loaded library. Setting rmeasure=NULL removes the measurement model simulator. For more information, see rmeasure specification .
  • verbose: logical; if TRUE, diagnostic messages will be printed to the console.

Returns

probe returns an object of class probed_pomp , which contains the data and the model, together with the results of the probe calculation.

Details

probe applies one or more probes to time series data and model simulations and compares the results. It can be used to diagnose goodness of fit and/or as the basis for probe-matching , a generalized method-of-moments approach to parameter estimation.

A call to 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 .

When probe operates on a probe-matching objective function (a probe_match_objfun object), by default, the random-number generator seed is fixed at the value given when the objective function was constructed. Specifying NULL or an integer for seed overrides this behavior.

Methods

The following methods are available.

  • plot: displays diagnostic plots.
  • summary: displays summary information. The summary includes quantiles (fractions of simulations with probe values less than those realized on the data) and the corresponding two-sided p-values. In addition, the synthetic likelihood (Wood 2010) is computed, under the assumption that the probe values are multivariate-normally distributed.
  • logLik: returns the synthetic likelihood for the probes. NB: in general, this is not the same as the likelihood.
  • as.data.frame: coerces a probed_pomp to a data.frame . The latter contains the realized values of the probes on the data and on the simulations. The variable .id indicates whether the probes are from the data or simulations.

Note for Windows users

Some Windows users report problems when using C snippets in parallel computations. These appear to arise when the temporary files created during the C snippet compilation process are not handled properly by the operating system. To circumvent this problem, use the cdir and cfile options to cause the C snippets to be written to a file of your choice, thus avoiding the use of temporary files altogether.

References

B.E. Kendall, C.J. Briggs, W.W. Murdoch, P. Turchin, S.P. Ellner, E. McCauley, R.M. Nisbet, and S.N. Wood. Why do populations cycle? A synthesis of statistical and mechanistic modeling approaches. Ecology 80 , 1789--1805, 1999. tools:::Rd_expr_doi("10.2307/176658") .

S. N. Wood Statistical inference for noisy nonlinear ecological dynamic systems. Nature 466 , 1102--1104, 2010. tools:::Rd_expr_doi("10.1038/nature09319") .

See Also

More on pomp elementary algorithms: elementary_algorithms, kalman, pfilter(), pomp-package, simulate(), spect(), trajectory(), wpfilter()

More on methods based on summary statistics: abc(), basic_probes, nlf, probe_match, spect(), spect_match

Author(s)

Daniel C. Reuman, Aaron A. King

  • Maintainer: Aaron A. King
  • License: GPL-3
  • Last published: 2025-04-16