PeerJ Computer Science (Sep 2023)

PyMC: a modern, and comprehensive probabilistic programming framework in Python

  • Oriol Abril-Pla,
  • Virgile Andreani,
  • Colin Carroll,
  • Larry Dong,
  • Christopher J. Fonnesbeck,
  • Maxim Kochurov,
  • Ravin Kumar,
  • Junpeng Lao,
  • Christian C. Luhmann,
  • Osvaldo A. Martin,
  • Michael Osthege,
  • Ricardo Vieira,
  • Thomas Wiecki,
  • Robert Zinkov

DOI
https://doi.org/10.7717/peerj-cs.1516
Journal volume & issue
Vol. 9
p. e1516

Abstract

Read online Read online

PyMC is a probabilistic programming library for Python that provides tools for constructing and fitting Bayesian models. It offers an intuitive, readable syntax that is close to the natural syntax statisticians use to describe models. PyMC leverages the symbolic computation library PyTensor, allowing it to be compiled into a variety of computational backends, such as C, JAX, and Numba, which in turn offer access to different computational architectures including CPU, GPU, and TPU. Being a general modeling framework, PyMC supports a variety of models including generalized hierarchical linear regression and classification, time series, ordinary differential equations (ODEs), and non-parametric models such as Gaussian processes (GPs). We demonstrate PyMC’s versatility and ease of use with examples spanning a range of common statistical models. Additionally, we discuss the positive role of PyMC in the development of the open-source ecosystem for probabilistic programming.

Keywords