Probabilistic programming in Python using PyMC3

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 Hamiltonian Monte Carlo, requires gradient information whic...

Full description

Bibliographic Details
Main Authors: John Salvatier, Thomas V. Wiecki, Christopher Fonnesbeck
Format: Article
Language:English
Published: PeerJ Inc. 2016-04-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-55.pdf
_version_ 1831674582788997120
author John Salvatier
Thomas V. Wiecki
Christopher Fonnesbeck
author_facet John Salvatier
Thomas V. Wiecki
Christopher Fonnesbeck
author_sort John Salvatier
collection DOAJ
description 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 Hamiltonian 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.
first_indexed 2024-12-20T03:47:21Z
format Article
id doaj.art-290c0dab0b404a77b91c406f0a049524
institution Directory Open Access Journal
issn 2376-5992
language English
last_indexed 2024-12-20T03:47:21Z
publishDate 2016-04-01
publisher PeerJ Inc.
record_format Article
series PeerJ Computer Science
spelling doaj.art-290c0dab0b404a77b91c406f0a0495242022-12-21T19:54:35ZengPeerJ Inc.PeerJ Computer Science2376-59922016-04-012e5510.7717/peerj-cs.55Probabilistic programming in Python using PyMC3John Salvatier0Thomas V. Wiecki1Christopher Fonnesbeck2AI Impacts, Berkeley, CA, United StatesQuantopian Inc, Boston, MA, United StatesDepartment of Biostatistics, Vanderbilt University, Nashville, TN, United StatesProbabilistic 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 Hamiltonian 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.https://peerj.com/articles/cs-55.pdfBayesian statisticProbabilistic ProgrammingPythonMarkov chain Monte CarloStatistical modeling
spellingShingle John Salvatier
Thomas V. Wiecki
Christopher Fonnesbeck
Probabilistic programming in Python using PyMC3
PeerJ Computer Science
Bayesian statistic
Probabilistic Programming
Python
Markov chain Monte Carlo
Statistical modeling
title Probabilistic programming in Python using PyMC3
title_full Probabilistic programming in Python using PyMC3
title_fullStr Probabilistic programming in Python using PyMC3
title_full_unstemmed Probabilistic programming in Python using PyMC3
title_short Probabilistic programming in Python using PyMC3
title_sort probabilistic programming in python using pymc3
topic Bayesian statistic
Probabilistic Programming
Python
Markov chain Monte Carlo
Statistical modeling
url https://peerj.com/articles/cs-55.pdf
work_keys_str_mv AT johnsalvatier probabilisticprogramminginpythonusingpymc3
AT thomasvwiecki probabilisticprogramminginpythonusingpymc3
AT christopherfonnesbeck probabilisticprogramminginpythonusingpymc3