Run a pmcmc sampler
pmcmc(pars, filter, initial = NULL, control = NULL)A pmcmc_parameters object containing
information about parameters (ranges, priors, proposal kernel,
translation functions for use with the particle filter).
A particle_filter object
Optional initial starting point. If given, it must
be compatible with the parameters given in pars, and must be
valid against your prior. You can use this to override the
initial conditions saved in your pars object. You can provide
either a vector of initial conditions, or a matrix with
n_chains columns to use a different starting point for each
chain.
A pmcmc_control object which will control how the MCMC runs, including the number of steps etc.
A mcstate_pmcmc object containing pars
(sampled parameters) and probabilities (log prior, log
likelihood and log posterior values for these
probabilities). Two additional fields may be present:
state (if return_state was TRUE),
containing the final state of a randomly selected particle at
the end of the simulation, for each step (will be a matrix with
as many rows as your state has variables, and as n_steps + 1 columns corresponding to each step). trajectories will
include a 3d array of particle trajectories through the
simulation (if return_trajectories was TRUE).
This is a basic Metropolis-Hastings MCMC sampler. The
filter is run with a set of parameters to evaluate the
likelihood. A new set of parameters is proposed, and these
likelihoods are compared, jumping with probability equal to their
ratio. This is repeated for n_steps proposals.
While this function is called pmcmc and requires a particle
filter object, there's nothing special about it for particle
filtering. However, we may need to add things in the future that
make assumptions about the particle filter, so we have named it
with a "p".