pymc3

by pymc-devs

pymc-devs / pymc3

Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Thean...

5.3K Stars 1.3K Forks Last release: 3 months ago (v3.9.3) Other 7.5K Commits 35 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

.. image:: https://cdn.rawgit.com/pymc-devs/pymc3/master/docs/logos/svg/PyMC3_banner.svg :height: 100px :alt: PyMC3 logo :align: center

|Build Status| |Coverage| |NumFOCUS_badge| |Binder| |Dockerhub|

PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and extensibility make it applicable to a large suite of problems.

Check out the

getting started guide 
, or
interact with live examples 
using Binder! For questions on PyMC3, head on over to our
PyMC Discourse 
__ forum.

Features

  • Intuitive model specification syntax, for example,
    x ~ N(0,1)
    translates to
    x = Normal('x',0,1)
  • Powerful sampling algorithms, such as the
    No U-Turn
    Sampler 
    __, allow complex models with thousands of parameters with little specialized knowledge of fitting algorithms.
  • Variational inference:
    ADVI 
    __ for fast approximate posterior estimation as well as mini-batch ADVI for large data sets.
  • Relies on
    Theano 
    __ which provides:
    • Computation optimization and dynamic C compilation
    • Numpy broadcasting and advanced indexing
    • Linear algebra operators
    • Simple extensibility
  • Transparent support for missing value imputation

Getting started

If you already know about Bayesian statistics:

  • API quickstart guide 
    __
  • The
    PyMC3 tutorial 
    __
  • PyMC3 examples 
    __ and the
    API reference 
    __

Learn Bayesian statistics with a book together with PyMC3:

  • Probabilistic Programming and Bayesian Methods for Hackers 
    __: Fantastic book with many applied code examples.
  • PyMC3 port of the book "Doing Bayesian Data Analysis" by John Kruschke 
    __ as well as the
    second edition 
    __: Principled introduction to Bayesian data analysis.
  • PyMC3 port of the book "Statistical Rethinking A Bayesian Course with Examples in R and Stan" by Richard McElreath 
    __
  • PyMC3 port of the book "Bayesian Cognitive Modeling" by Michael Lee and EJ Wagenmakers 
    __: Focused on using Bayesian statistics in cognitive modeling.
  • Bayesian Analysis with Python  
    __ (second edition) by Osvaldo Martin: Great introductory book. (
    code 
    __ and errata).

PyMC3 talks

There are also several talks on PyMC3 which are gathered in this

YouTube playlist 
__

Installation

The latest release of PyMC3 can be installed from PyPI using

pip
:

::

pip install pymc3

Note: Running

pip install pymc
will install PyMC 2.3, not PyMC3, from PyPI.

Or via conda-forge:

::

conda install -c conda-forge pymc3

Plotting is done using

ArviZ 
__ - if you follow the installation instructions above, then it will be installed alongside
PyMC3
.

The current development branch of PyMC3 can be installed from GitHub, also using

pip
:

::

pip install git+https://github.com/pymc-devs/pymc3

To ensure the development branch of Theano is installed alongside PyMC3 (recommended), you can install PyMC3 using the

requirements.txt
file. This requires cloning the repository to your computer:

::

git clone https://github.com/pymc-devs/pymc3
cd pymc3
pip install -r requirements.txt

However, if a recent version of Theano has already been installed on your system, you can install PyMC3 directly from GitHub.

Another option is to clone the repository and install PyMC3 using

python setup.py install
or
python setup.py develop
.

Dependencies

PyMC3 is tested on Python 3.6 and depends on Theano, NumPy, SciPy, and Pandas (see

requirements.txt
for version information).

Optional

In addtion to the above dependencies, the GLM submodule relies on

Patsy 
__.

Citing PyMC3

Salvatier J., Wiecki T.V., Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2:e55

DOI: 10.7717/peerj-cs.55 
__.

Contact

We are using

discourse.pymc.io 
__ as our main communication channel. You can also follow us on
Twitter @pymc_devs 
__ for updates and other announcements.

To ask a question regarding modeling or usage of PyMC3 we encourage posting to our Discourse forum under the

“Questions” Category 
. You can also suggest feature in the
“Development” Category 
.

To report an issue with PyMC3 please use the

issue tracker 
__.

Finally, if you need to get in touch for non-technical information about the project,

send us an e-mail 
__.

License

Apache License, Version
2.0 
__

Software using PyMC3

  • Exoplanet 
    __: a toolkit for modeling of transit and/or radial velocity observations of exoplanets and other astronomical time series.
  • Bambi 
    __: BAyesian Model-Building Interface (BAMBI) in Python.
  • pymc3_models 
    __: Custom PyMC3 models built on top of the scikit-learn API.
  • PMProphet 
    __: PyMC3 port of Facebook's Prophet model for timeseries modeling
  • webmc3 
    __: A web interface for exploring PyMC3 traces
  • sampled 
    __: Decorator for PyMC3 models.
  • NiPyMC 
    __: Bayesian mixed-effects modeling of fMRI data in Python.
  • beat 
    __: Bayesian Earthquake Analysis Tool.
  • pymc-learn 
    _: Custom PyMC models built on top of pymc3models/scikit-learn API
  • fenics-pymc3 
    __: Differentiable interface to FEniCS, a library for solving partial differential equations.

Please contact us if your software is not listed here.

Papers citing PyMC3

See

Google Scholar 
__ for a continuously updated list.

Contributors

See the

GitHub contributor
page 
. Also read our
Code of Conduct 
guidelines for a better contributing experience.

Support

PyMC3 is a non-profit project under NumFOCUS umbrella. If you want to support PyMC3 financially, you can donate

here 
__.

PyMC for enterprise

PyMC is now available as part of the Tidelift Subscription!

Tidelift is working with PyMC and the maintainers of thousands of other open source projects to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while contributing financially to PyMC -- making it even more robust, reliable and, let's face it, amazing!

|tideliftlearn| |tideliftdemo|

Sponsors

|NumFOCUS|

|Quantopian|

|ODSC|

.. |Binder| image:: https://mybinder.org/badgelogo.svg :target: https://mybinder.org/v2/gh/pymc-devs/pymc3/master?filepath=%2Fdocs%2Fsource%2Fnotebooks .. |Build Status| image:: https://travis-ci.org/pymc-devs/pymc3.svg?branch=master :target: https://travis-ci.org/pymc-devs/pymc3 .. |Coverage| image:: https://codecov.io/gh/pymc-devs/pymc3/branch/master/graph/badge.svg :target: https://codecov.io/gh/pymc-devs/pymc3 .. |Dockerhub| image:: https://img.shields.io/docker/automated/pymc/pymc3.svg :target: https://hub.docker.com/r/pymc/pymc3 .. |NumFOCUS| image:: https://www.numfocus.org/wp-content/uploads/2017/03/1457562110.png :target: http://www.numfocus.org/ .. |Quantopian| image:: https://raw.githubusercontent.com/pymc-devs/pymc3/master/docs/quantopianlogo.jpg :target: https://quantopian.com .. |NumFOCUSbadge| image:: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A :target: http://www.numfocus.org/ .. |ODSC| image:: https://raw.githubusercontent.com/pymc-devs/pymc3/master/docs/odsclogo.png :target: https://odsc.com .. |tidelift| image:: https://img.shields.io/badge/-lifted!-2dd160.svg?colorA=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC :target: https://tidelift.com/subscription/pkg/pypi-pymc3?utmsource=pypi-pymc3&utmmedium=referral&utmcampaign=enterprise .. |tideliftlearn| image:: https://img.shields.io/badge/-learn%20more-2dd160.svg?color=orange&labelColor=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC :target: https://tidelift.com/subscription/pkg/pypi-pymc3?utmsource=pypi-pymc3&utmmedium=referral&utmcampaign=enterprise .. |tideliftdemo| image:: https://img.shields.io/badge/-request%20a%20demo-2dd160.svg?color=orange&labelColor=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC :target: https://tidelift.com/subscription/request-a-demo?utmsource=pypi-pymc3&utmmedium=referral&utmcampaign=enterprise

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.