statistical inference for
partially-observed Markov processes

pomp provides a very general realization of nonlinear partially-observed Markov processes (AKA nonlinear stochastic dynamical systems). These are a generalization of linear state-space and hidden Markov models to nonlinear, non-Gaussian processes in either discrete or continuous time. In pomp, one can implement a model by specifying its unobserved process and measurement components; the package uses these functions in algorithms to simulate, analyze, and fit the model to data. The motivation, structure, and contents of the package are described, with examples, in a Journal of Statistical Software paper, an updated version of which is provided on this site.

Currently, pomp provides support for

  • basic particle filtering (AKA sequential importance sampling or sequential Monte Carlo),
  • trajectory matching,
  • the approximate Bayesian sequential Monte Carlo algorithm of Liu & West (2001),
  • the particle Markov chain Monte Carlo method of Andrieu et al. (2010),
  • approximate Bayesian computation (ABC; Toni et al. 2009)
  • the iterated filtering method of Ionides, Breto, & King (2006),
  • the improved iterated filtering method (Ionides et al. 2015),
  • probe-matching methods (e.g., Kendall et al. 1999, Wood et al. 2010)
  • the nonlinear forecasting method of Ellner & Kendall,
  • the ensemble Kalman filter of Evensen (1994, 2009), and
  • the ensemble adjustment Kalman filter of Anderson (2001), and
  • power-spectrum-matching methods of Reuman et al. (2006).

Future support for a variety of other algorithms is envisioned. In particular, pomp is a platform upon which general inference algorithms for partially observed Markov processes can be implemented. We welcome contributions in the form of codes, examples, improvements to the documentation, bug reports, feature requests, and requests for help!

Please let the developers know if you find pomp useful, if you publish results obtained using it, if you come up with improvements, find bugs, or have suggestions or feature requests!</a> There is also a wiki: you are invited to contribute snippets of code, interesting results, references to papers, and so on.

The package is provided under the GNU Public License. pomp is under active development: new features are being added and old features are being improved. Although the developers make efforts to preserve backward compatibility, we cannot absolutely guarantee backward compatibility. We will be sure to include warnings of changes that break backward compatibility in the NEWS file and the pomp news blog. To keep abreast of new developments, subscribe to the pomp RSS feed.



This software has been made possible by support from the U.S. National Science Foundation (Grants #EF-0545276, #EF-0430120), by the “Inference for Mechanistic Models” Working Group supported by the National Center for Ecological Analysis and Synthesis (a Center funded by N.S.F. (Grant #DEB-0553768), the University of California, Santa Barbara, and the State of California), and by the RAPIDD program of the Science & Technology Directorate, Department of Homeland Security and the Fogarty International Center, U.S. National Institutes of Health.