Common types for implementing Markov Chain Monte Carlo (MCMC) algorithms.
An instance of an MCMC problem can be characterized by the following:
- A target distribution over some parameter space
- A parameter space for a Markov chain to wander over
- A transition operator to drive the Markov chain
mcmc-types provides the suitably-general
Transition types for usefully representing these things respectively.
Targetis a product type intended to hold a log-target density function and potentially its gradient.
Chaintype represents an 'annotated' parameter space. Technically all that's required is the type of the parameter space itself (held here in
chainPosition) but in practice some additional information is typically useful. The
chainTunablesfield can be used to hold arbitrary data; one should avoid using it to do something nasty like, say, invalidating the Markov property.
Transitiontype permits probabilistic transitions over some state space by way of the underlying
See e.g. the mighty-metropolis library for example use.