Probabilistic programming in Python using PyMC3
- Published
- Accepted
- 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
- 2016. Probabilistic programming in Python using PyMC3. PeerJ PrePrints 4:e1686v1 https://doi.org/10.7287/peerj.preprints.1686v1
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.