The Ensemble Julia Package
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
A combination MCMC/Gibbs sampling method in
A parallel-tempered MCMC (PTMCMC) in
EnsemblePTSamplerthat automatically tunes the chain temperature following an algorithm similar to Vousden, Farr, & Mandel (2016).
A bare-bones implementation of the
kombinesampler described in Farr & Farr (in prep) in
EnesmbleKombine. 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:
Various useful re-parameterisations of constrained parameters to remove the constraints in the
Parameterizationsmodule. Most of these are taken from the Stan Users Manual.
A basic Powell's method optimiser in the
A stable implementation of the
logsumexpfunction in the
Ensemble module exports these various sub-modules as top-level identifiers.