Popularity
4 Stars
Updated Last
5 Months Ago
Started In
June 2015

The Ensemble Julia Package

Build Status

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) 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:

    • 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 the Stats module.

The Ensemble module exports these various sub-modules as top-level identifiers.