The particle Markov chain Metropolis-Hastings algorithm

Share:

Description

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.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
## S4 method for signature 'pomp'
pmcmc(object, Nmcmc = 1, start, proposal, pars, rw.sd, Np,
    tol = 1e-17, max.fail = 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,
    max.fail = 0, verbose = getOption("verbose"), ...)
## S4 method for signature 'pmcmc'
continue(object, Nmcmc = 1, ...)

Arguments

object

An object of class pomp.

Nmcmc

The number of PMCMC iterations to perform.

start

named numeric vector; the starting guess of the parameters.

proposal

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.

pars, rw.sd

Deprecated. Will be removed in a future release.

Np

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

tol

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.

max.fail

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

verbose

logical; if TRUE, print progress reports.

...

Additional arguments. These are currently ignored.

Value

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, max.fail, 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.

Details

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.

Methods

conv.rec

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.

plot

Diagnostic plots.

logLik

Returns the value in the loglik slot.

c

Concatenates pmcmc objects into a pmcmcList.

Author(s)

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

References

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.

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.