PyMC: a modern, and comprehensive probabilistic programming framework in Python - Abril-Pla, Oriol; Andreani, Virgile; Carroll, Colin; Dong, Larry; Fonnesbeck, Christopher J.; Kochurov, Maxim; Kumar, Ravin; Lao, Junpeng; Luhmann, Christian C.; Martin, Osvaldo A.; Osthege, Michael; Vieira, Ricardo; et al. (PeerJ. Computer science, 2023)
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.