pmcmc: The particle Markov chain Metropolis-Hastings algorithm

Description Usage Arguments Value Re-running PMCMC Iterations Continuing PMCMC Iterations Details Methods Author(s) References See Also


The Particle MCMC algorithm for estimating the parameters of a partially-observed Markov process. Running pmcmc causes a particle random-walk Metropolis-Hastings Markov chain algorithm to run for the specified number of proposals.


## S4 method for signature 'pomp'
pmcmc(object, Nmcmc = 1, start, proposal, pars,, Np,
    tol = 1e-17, = 0, verbose = getOption("verbose"), ...)
## S4 method for signature 'pfilterd.pomp'
pmcmc(object, Nmcmc = 1, Np, tol, ...)
## S4 method for signature 'pmcmc'
pmcmc(object, Nmcmc, start, proposal, Np, tol, = 0, verbose = getOption("verbose"), ...)
## S4 method for signature 'pmcmc'
continue(object, Nmcmc = 1, ...)



An object of class pomp.


The number of PMCMC iterations to perform.


named numeric vector; the starting guess of the parameters.


optional function that draws from the proposal distribution. Currently, the proposal distribution must be symmetric for proper inference: it is the user's responsibility to ensure that it is. Several functions that construct appropriate proposal function are provided: see MCMC proposal functions for more information.


Deprecated. Will be removed in a future release.


a positive integer; the number of particles to use in each filtering operation.


numeric scalar; particles with log likelihood below tol are considered to be “lost”. A filtering failure occurs when, at some time point, all particles are lost.

integer; maximum number of filtering failures permitted. If the number of failures exceeds this number, execution will terminate with an error.


logical; if TRUE, print progress reports.


Additional arguments. These are currently ignored.


An object of class pmcmc.

Re-running PMCMC Iterations

To re-run a sequence of PMCMC iterations, one can use the pmcmc method on a pmcmc object. By default, the same parameters used for the original PMCMC run are re-used (except for tol,, and verbose, the defaults of which are shown above). If one does specify additional arguments, these will override the defaults.

Continuing PMCMC Iterations

One can continue a series of PMCMC iterations from where one left off using the continue method. A call to pmcmc to perform Nmcmc=m iterations followed by a call to continue to perform Nmcmc=n iterations will produce precisely the same effect as a single call to pmcmc to perform Nmcmc=m+n iterations. By default, all the algorithmic parameters are the same as used in the original call to pmcmc. Additional arguments will override the defaults.


pmcmc implements an MCMC algorithm in which the true likelihood of the data is replaced by an unbiased estimate computed by a particle filter. This gives an asymptotically correct Bayesian procedure for parameter estimation (Andrieu and Roberts, 2009). An extension to give a correct Bayesian posterior distribution of unobserved state variables (as in Andrieu et al, 2010) has not yet been implemented.



conv.rec(object, pars) returns the columns of the convergence-record matrix corresponding to the names in pars as an object of class mcmc or mcmc.list.


Diagnostic plots.


Returns the value in the loglik slot.


Concatenates pmcmc objects into a pmcmcList.


Edward L. Ionides ionides at umich dot edu, Aaron A. King kingaa at umich dot edu


C. Andrieu, A. Doucet and R. Holenstein, Particle Markov chain Monte Carlo methods, J. R. Stat. Soc. B, to appear, 2010.

C. Andrieu and G.O. Roberts, The pseudo-marginal approach for efficient computation, Ann. Stat. 37:697-725, 2009.

See Also

pomp, pfilter, and the tutorials on the package website.

Search within the pomp package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.