Source-linked AI summary

emcee v3: A Python ensemble sampling toolkit for affine-invariant MCMC

Daniel Foreman-Mackey, Will M. Farr, Manodeep Sinha, Anne M. Archibald, David W. Hogg, Jeremy S. Sanders, Joe Zuntz, Peter K. G. Williams, Andrew R. J. Nelson, Miguel de Val-Borro, Tobias Erhardt, Ilya Pashchenko, Oriol Abril Pla

arXiv:1911.07688v1astro-ph.IMstat.CO

TL;DR

emcee v3 presents a major update centered on a new interface for ensemble moves, alongside improved result handling and quality-of-life features. It retains the stretch move, adds several alternative and custom proposals, and enables disk serialization through HDFBackend.

  • Problem

    emcee’s release incorporates community contributions and addresses the need for broader ensemble-proposal support beyond the original stretch move.

  • Method

    The release introduces a moves interface with several built-in ensemble proposals and support for custom proposals, plus an HDFBackend for serializing chains to disk.

  • Results

    The release provides alternative ensemble moves, custom-proposal support, real-time chain serialization, and a tqdm-based progress bar.

  • Takeaways & Limitations

    Users can choose among multiple ensemble moves, define custom proposals, and store sampling results on disk rather than only in memory.

Abstract

from arXiv · show

emcee is a Python library implementing a class of affine-invariant ensemble samplers for Markov chain Monte Carlo (MCMC). This package has been widely applied to probabilistic modeling problems in astrophysics where it was originally published, with some applications in other fields. When it was first released in 2012, the interface implemented in emcee was fundamentally different from the MCMC libraries that were popular at the time, such as PyMC, because it was specifically designed to work with "black box" models instead of structured graphical models. This has been a popular interface for applications in astrophysics because it is often non-trivial to implement realistic physics within the modeling frameworks required by other libraries. Since emcee's release, other libraries have been developed with similar interfaces, such as dynesty (Speagle 2019). The version 3.0 release of emcee is the first major release of the library in about 6 years and it includes a full re-write of the computational backend, several commonly requested features, and a set of new "move" implementations.

Summary

emcee v3 highlights community contributions while introducing a new moves interface and additional tooling for sampling-result storage. The release retains the stretch move, adds other ensemble proposals and custom-proposal support, and provides disk serialization through HDFBackend.

  • Result storage: HDFBackend serializes the sampling chain to disk with h5py, extending the default in-memory result storage.This provides real-time serialization of sampling results.
  • Quality-of-life improvements: The release also adds smaller quality-of-life improvements, including a tqdm-based progress bar.
  • New moves interface: The v3 release’s most important feature is a new moves interface for ensemble proposals.It supports several implemented moves and allows users to define custom proposals.
  • Implemented moves: The stretch move remains included alongside differential evolution, differential evolution snooker update, and kernel density proposal moves.These moves draw on proposals from Goodman & Weare, ter Braak, ter Braak & Vrugt, and kombine.
  • Community contributions: The paper credits community contributors whose work helped shape emcee and points readers to GitHub for the current contributor list.
Loading 1911.07688v1…