# Welcome to PyMC3’s documentation!¶

PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning which focuses on advanced Markov chain Monte Carlo and variational fitting algorithms. Its flexibility and extensibility make it applicable to a large suite of problems.

Check out the getting started guide!

## 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¶

- The PyMC3 tutorial
- PyMC3 examples and the API reference
- Probabilistic Programming and Bayesian Methods for Hackers
- Bayesian Modelling in Python – tutorials on Bayesian statistics and PyMC3 as Jupyter Notebooks by Mark Dregan
- Talk at PyData London 2016 on PyMC3
- PyMC3 port of the models presented in the book “Doing Bayesian Data Analysis” by John Kruschke
- Coyle P. (2016) Probabilistic programming and PyMC3. European Scientific Python Conference 2015 (Cambridge, UK)
- Bayesian Analysis with Python by Osvaldo Martin

## 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
```

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 2.7 and 3.6 and depends on Theano, NumPy,
SciPy, Pandas, and Matplotlib (see `requirements.txt`

for version
information).

### Optional¶

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

scikits.sparse enables sparse scaling matrices which are useful for large problems.

## Citing PyMC3¶

Salvatier J, Wiecki TV, Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2:e55 https://doi.org/10.7717/peerj-cs.55

## License¶

## Papers citing PyMC3¶

See Google Scholar for a continuously updated list.

## Contributors¶

See the GitHub contributor page