Probabilistic programming in Python using PyMC3

AI Impacts, Berkeley, CA, United States
Quantopian Inc, Boston, MA, United States of America
Department of Biostatistics, Vanderbilt University, Nashville, Tennessee, United States
DOI
10.7287/peerj.preprints.1686v1
Subject Areas
Data Mining and Machine Learning, Data Science, Scientific Computing and Simulation
Keywords
Bayesian statistic, Probabilistic Programming, Python, Markov chain Monte Carlo, Statistical modeling
Copyright
© 2016 Salvatier et al.
Licence
This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ PrePrints) and either DOI or URL of the article must be cited.
Cite this article
Salvatier J, Wiecki TV, Fonnesbeck C. 2016. Probabilistic programming in Python using PyMC3. PeerJ PrePrints 4:e1686v1

Abstract

Probabilistic Programming allows for automatic Bayesian inference on user-defined probabilistic models. Recent advances in Markov chain Monte Carlo (MCMC) sampling allow inference on increasingly complex models. This class of MCMC, known as Hamliltonian Monte Carlo, requires gradient information which is often not readily available. PyMC3 is a new open source Probabilistic Programming framework written in Python that uses Theano to compute gradients via automatic differentiation as well as compile probabilistic programs on-the-fly to C for increased speed. Contrary to other Probabilistic Programming languages, PyMC3 allows model specification directly in Python code. The lack of a domain specific language allows for great flexibility and direct interaction with the model. This paper is a tutorial-style introduction to this software package.

Author Comment

This is a submission to PeerJ for review.