Skip to content

sczesla/pymc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyMC 3

PyMC grew out of, MCEx, an experimental package designed to be allow experimentation with MCMC package design. It's goal is to be simple to use, understand, extend and improve, while still being fast. The hope is that some of the lessons learned in this experimental package lead to improvements in PyMC. This branch is still experimental so people are encouraged to try out their own designs and improvements as well as make criticisms.

For a tutorial on basic inference, see tutorial.py in the examples folder.

Some design decisions

Design decision Advantages Disadvantages
Computational core outsourced to Theano
  • Simple package code (<400 lines)
  • Efficient
  • Improvements to Theano improve PyMC
  • GPU enabled
  • Automatic Differentiation
  • Supporting arbitrary stochastics/deterministics more difficult in complex cases
Random variables, distributions, chains, chain history, and model all distinct
  • Easy to understand design
  • Reflects the mathematical structure
  • Adding new functionality can be done independently from the rest of the package
  • More verbose
Functional style design
  • Allows easier exchange of components
  • Design less similar to Object Oriented design

To Do

  • Simplify standard usage.
  • Build a GPU example
  • Give sample a way of automatically choosing step methods.
  • Do some profiling to see why likelihoods are slower in pymc3 than pymc
  • Fix step_methods.gibbs.categorical so that it's faster, currently very slow.
  • Implement a potential object which can take incomplete covariances and exploit the conditional independence of nodes to do the whole calculation
  • Build examples showcasing different samplers
  • Reconsider nphistory design
  • missing value imputation

Possible Changes

  • Make HMC and related automatically choose a variance/covariance

About

Bayesian inference in Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published