Contribute Media
A thank you to everyone who has made this possible: Read More

PyMC: Markov Chain Monte Carlo in Python

Summary

PyMC is a Python module that implements Bayesian statistical models and fitting algorithms, including Markov chain Monte Carlo (MCMC). Its flexibility, extensibility, and clean interface make it applicable to a large suite of statistical modeling applications. The upcoming release of PyMC 3 features an expanded set of MCMC samplers, including Hamiltonian Monte Carlo.

Description

PyMC is a Python module that implements Bayesian statistical models and fitting algorithms, including Markov chain Monte Carlo (MCMC). Its flexibility and extensibility make it applicable to a large suite of problems. Along with core sampling functionality, PyMC includes methods for summarizing output, plotting, goodness-of-fit and convergence diagnostics. PyMC seeks to make Bayesian analysis as painless as possible, so that it may be used by a range of data analysts. Its key features include:

  • Fits Bayesian statistical models with Markov chain Monte Carlo and other algorithms.
  • Includes a large suite of well-documented statistical distributions.
  • Uses NumPy for numerics wherever possible.
  • Includes a module for modeling Gaussian processes.
  • Sampling loops can be paused and tuned manually, or saved and restarted later.
  • Creates summaries including tables and plots.
  • Traces can be saved to the disk as plain text, Python pickles, SQLite or MySQL database, or hdf5 archives.
  • Several convergence diagnostics are available.
  • Extensible: easily incorporates custom step methods and unusual probability distributions.
  • MCMC loops can be embedded in larger programs, and results can be analyzed with the full power of Python.

The upcoming release of PyMC 3 features an expanded set of MCMC samplers, including Hamiltonian Monte Carlo. For this, we tap into the power of Theano to provide automatic evaluation of mathematical expressions, including gradients used by modern MCMC samplers.

The source and documentation for PyMC can be found on GitHub.

Improve this page