Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/pymc-devs/pymc

Bayesian Modeling and Probabilistic Programming in Python
https://github.com/pymc-devs/pymc

bayesian-inference mcmc probabilistic-programming pytensor python statistical-analysis variational-inference

Last synced: about 2 months ago
JSON representation

Bayesian Modeling and Probabilistic Programming in Python

Lists

README

        

.. image:: https://cdn.rawgit.com/pymc-devs/pymc/main/docs/logos/svg/PyMC_banner.svg
:height: 100px
:alt: PyMC logo
:align: center

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

PyMC (formerly PyMC3) is a Python package for Bayesian statistical modeling
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 `PyMC overview `__, or
one of `the many examples `__!
For questions on PyMC, 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 `PyTensor `__ which provides:
* Computation optimization and dynamic C or JAX 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 `PyMC tutorial `__
- `PyMC examples `__ and the `API reference `__

Learn Bayesian statistics with a book together with PyMC
--------------------------------------------------------

- `Probabilistic Programming and Bayesian Methods for Hackers `__: Fantastic book with many applied code examples.
- `PyMC port of the book "Doing Bayesian Data Analysis" by John Kruschke `__ as well as the `first edition `__.
- `PyMC port of the book "Statistical Rethinking A Bayesian Course with Examples in R and Stan" by Richard McElreath `__
- `PyMC 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).

Audio & Video
-------------

- Here is a `YouTube playlist `__ gathering several talks on PyMC.
- You can also find all the talks given at **PyMCon 2020** `here `__.
- The `"Learning Bayesian Statistics" podcast `__ helps you discover and stay up-to-date with the vast Bayesian community. Bonus: it's hosted by Alex Andorra, one of the PyMC core devs!

Installation
============

To install PyMC on your system, follow the instructions on the `installation guide `__.

Citing PyMC
===========
Please choose from the following:

- |DOIpaper| *PyMC: A Modern and Comprehensive Probabilistic Programming Framework in Python*, Abril-Pla O, Andreani V, Carroll C, Dong L, Fonnesbeck CJ, Kochurov M, Kumar R, Lao J, Luhmann CC, Martin OA, Osthege M, Vieira R, Wiecki T, Zinkov R. (2023)
- |DOIzenodo| A DOI for all versions.
- DOIs for specific versions are shown on Zenodo and under `Releases `_

.. |DOIpaper| image:: https://img.shields.io/badge/DOI-10.7717%2Fpeerj--cs.1516-blue
:target: https://doi.org/10.7717/peerj-cs.1516
.. |DOIzenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4603970.svg
:target: https://doi.org/10.5281/zenodo.4603970

Contact
=======

We are using `discourse.pymc.io `__ as our main communication channel.

To ask a question regarding modeling or usage of PyMC we encourage posting to our Discourse forum under the `“Questions” Category `__. You can also suggest feature in the `“Development” Category `__.

You can also follow us on these social media platforms for updates and other announcements:

- `LinkedIn @pymc `__
- `YouTube @PyMCDevelopers `__
- `Twitter @pymc_devs `__
- `Mastodon @[email protected] `__

To report an issue with PyMC 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 PyMC
===================

General purpose
---------------

- `Bambi `__: BAyesian Model-Building Interface (BAMBI) in Python.
- `calibr8 `__: A toolbox for constructing detailed observation models to be used as likelihoods in PyMC.
- `gumbi `__: A high-level interface for building GP models.
- `SunODE `__: Fast ODE solver, much faster than the one that comes with PyMC.
- `pymc-learn `__: Custom PyMC models built on top of pymc3_models/scikit-learn API

Domain specific
---------------

- `Exoplanet `__: a toolkit for modeling of transit and/or radial velocity observations of exoplanets and other astronomical time series.
- `beat `__: Bayesian Earthquake Analysis Tool.
- `CausalPy `__: A package focussing on causal inference in quasi-experimental settings.

Please contact us if your software is not listed here.

Papers citing PyMC
==================

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
=======

PyMC is a non-profit project under NumFOCUS umbrella. If you want to support PyMC financially, you can donate `here `__.

Professional Consulting Support
===============================

You can get professional consulting support from `PyMC Labs `__.

Sponsors
========

|NumFOCUS|

|PyMCLabs|

|Mistplay|

|ODSC|

.. |Binder| image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/pymc-devs/pymc/main?filepath=%2Fdocs%2Fsource%2Fnotebooks
.. |Build Status| image:: https://github.com/pymc-devs/pymc/workflows/pytest/badge.svg
:target: https://github.com/pymc-devs/pymc/actions
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pymc/branch/main/graph/badge.svg
:target: https://codecov.io/gh/pymc-devs/pymc
.. |Dockerhub| image:: https://img.shields.io/docker/automated/pymc/pymc.svg
:target: https://hub.docker.com/r/pymc/pymc
.. |NumFOCUS_badge| image:: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A
:target: http://www.numfocus.org/
.. |NumFOCUS| image:: https://github.com/pymc-devs/brand/blob/main/sponsors/sponsor_logos/sponsor_numfocus.png?raw=true
:target: http://www.numfocus.org/
.. |PyMCLabs| image:: https://github.com/pymc-devs/brand/blob/main/sponsors/sponsor_logos/sponsor_pymc_labs.png?raw=true
:target: https://pymc-labs.io
.. |Mistplay| image:: https://github.com/pymc-devs/brand/blob/main/sponsors/sponsor_logos/sponsor_mistplay.png?raw=true
:target: https://www.mistplay.com/
.. |ODSC| image:: https://github.com/pymc-devs/brand/blob/main/sponsors/sponsor_logos/odsc/sponsor_odsc.png?raw=true
:target: https://odsc.com/california/?utm_source=pymc&utm_medium=referral