2016 | John Salvatier, Thomas V Wiecki, Christopher Fonnesbeck
A peer-reviewed version of this preprint was published in PeerJ on 4 April 2016. The paper introduces PyMC3, a probabilistic programming framework written in Python that uses Theano to compute gradients via automatic differentiation and compile probabilistic programs on-the-fly to C for increased speed. PyMC3 allows model specification directly in Python code, offering flexibility and direct interaction with the model. The paper provides a tutorial-style introduction to PyMC3, covering its use for Bayesian statistical inference and prediction. It describes the framework's features, including next-generation Markov chain Monte Carlo (MCMC) sampling algorithms such as the No-U-Turn Sampler (NUTS), which is efficient for high-dimensional and complex posterior distributions. The paper also discusses the use of PyMC3 for various applications, including linear regression, stochastic volatility, and coal mining disasters. It highlights the framework's ability to handle both continuous and discrete variables, as well as its support for custom distributions and arbitrary deterministic variables. The paper concludes with a discussion of PyMC3's features, including its modular design, support for different backends, and its role in probabilistic programming as an emerging paradigm in statistical learning.A peer-reviewed version of this preprint was published in PeerJ on 4 April 2016. The paper introduces PyMC3, a probabilistic programming framework written in Python that uses Theano to compute gradients via automatic differentiation and compile probabilistic programs on-the-fly to C for increased speed. PyMC3 allows model specification directly in Python code, offering flexibility and direct interaction with the model. The paper provides a tutorial-style introduction to PyMC3, covering its use for Bayesian statistical inference and prediction. It describes the framework's features, including next-generation Markov chain Monte Carlo (MCMC) sampling algorithms such as the No-U-Turn Sampler (NUTS), which is efficient for high-dimensional and complex posterior distributions. The paper also discusses the use of PyMC3 for various applications, including linear regression, stochastic volatility, and coal mining disasters. It highlights the framework's ability to handle both continuous and discrete variables, as well as its support for custom distributions and arbitrary deterministic variables. The paper concludes with a discussion of PyMC3's features, including its modular design, support for different backends, and its role in probabilistic programming as an emerging paradigm in statistical learning.