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".