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...
Main Authors: | , , |
---|---|
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 |