The Ensemble package implements in Julia various stochastic samplers based on the "stretch move" for ensembles of walkers described by Goodman & Weare (2010), and popularised in the emcee package from Foreman-Mackey, et al (2013).
In addition to a basic implementation of the Goodman & Weare MCMC
algorithm in the EnsembleSampler
module, this algorithm forms the
basis of a number of other stochastic sampling algorithms:
-
A nested sampling algorithm based around the stretch move from Goodman & Weare in
EnsembleNest
. -
A combination MCMC/Gibbs sampling method in
EnsembleGibbs
. -
A parallel-tempered MCMC (PTMCMC) in
EnsemblePTSampler
that automatically tunes the chain temperature following an algorithm similar to Vousden, Farr, & Mandel (2016). -
A bare-bones implementation of the
kombine
sampler described in Farr & Farr (in prep) inEnesmbleKombine
. This module is missing the automatic burnin determination and the bells-and-whistles from the Python package described in that paper, but is a fully-functional multi-modal KDE sampler. -
Various support libraries for stochastic sampling with these packages:
-
Computation of autocorrelation lengths following the spirit, if not the algorithm, of Goodman's implementation of Sokal's definition of the autocorrelation length in the module
Acor
. -
Various useful re-parameterisations of constrained parameters to remove the constraints in the
Parameterizations
module. Most of these are taken from the Stan Users Manual. -
A basic Powell's method optimiser in the
Optimize
module. -
A stable implementation of the
logsumexp
function in theStats
module.
-
The Ensemble
module exports these various sub-modules as top-level identifiers.