PyMC 3 (https://github.com/pymc-devs/pymc3), a total rewrite of PyMC 2, provides a powerful yet easy-to-use language for specifying statistical models and provides powerful yet easy-to-use gradient-based techniques for fitting them. New advances in sampling techniques have made it possible to fit large and complex Bayesian models much more easily than ever before and PyMC 3 is the easiest way to use them.
Bayesian inference is a powerful and flexible way to learn from data, that is easy to understand. Unfortunately larger problems are often computationally intractable. Markov Chain Monte Carlo sampling techniques help, but are still computationally limited. New gradient-based methods like the No U-Turn Sampler (NUTS) dramatically increase performance on hard problems.
PyMC 3 provides a easy and concise way to specify models and provides powerful yet easy to use samplers like NUTS. This enables users easily fit large and complex models with thousands of parameters. PyMC 3 is a complete rewrite of PyMC 2 based on Theano. PyMC expands its powerful NumPy-like syntax, and is now easier to extend and automatically optimized by Theano.
We first introduce Bayesian inference and then give several examples of using PyMC 3 to show off the ease of model building and model fitting even for difficult models.