Learn R Programming

pomp (version 0.39-3)

pmcmc: The PMCMC algorithm

Description

The Particle MCMC algorithm for estimating the parameters of a partially-observed Markov process.

Usage

## S3 method for class 'pomp':
pmcmc(object, Nmcmc = 1, start, pars,
    rw.sd, dprior, Np, hyperparams, tol = 1e-17, max.fail = 0,
    verbose = getOption("verbose"), ...)
## S3 method for class 'pfilterd.pomp':
pmcmc(object, Nmcmc = 1, start, pars,
    rw.sd, dprior, Np, hyperparams, tol, max.fail = 0,
    verbose = getOption("verbose"), ...)
## S3 method for class 'pmcmc':
pmcmc(object, Nmcmc, start, pars,
    rw.sd, dprior, Np, hyperparams, tol, max.fail = 0,
    verbose = getOption("verbose"), ...)
## S3 method for class 'pmcmc':
continue(object, Nmcmc = 1, start, pars,
    rw.sd, dprior, Np, hyperparams, tol, max.fail = 0,
    verbose = getOption("verbose"), ...)

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.
pars
optional character vector naming the ordinary parameters to be estimated. Every parameter named in pars must have a positive random-walk standard deviation specified in rw.sd. Leaving pars unspecified is equi
dprior
Function of prototype dprior(params,hyperparams,...,log) that evaluates the prior density. This defaults to an improper uniform prior.
rw.sd
numeric vector with names; used to parameterize a Gaussian random walk MCMC proposal. The random walk is only applied to parameters named in pars. The algorithm requires that the random walk be nontrivial, so each element in rw.sd[pars]
Np
a positive integer; the number of particles to use in each filtering operation.
hyperparams
optional list; parameters to be passed to dprior.
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. This class inherits from class pfilterd.pomp and contains the following additional slots: [object Object],[object Object],[object Object]

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 (Andrieu et al, 2010) has not yet been implemented.

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

pmcmc-class, pmcmc-methods, pomp, pomp-class, pfilter. See the intro_to_pomp vignette for an example [CURRENTLY, ONLY DEMONSTRATING THE MIF ALGORITHM, WHICH IS ALGORITHMICALLY VERY SIMILAR TO PMCMC SINCE THEY BOTH DEPEND CRITICALLY ON A PARTICLE FILTERING STEP].