PyVBMC: Efficient Bayesian inference in Python

  • 2023-03-16 18:37:22
  • Bobby Huggins, Chengkun Li, Marlon Tobaben, Mikko J. Aarnos, Luigi Acerbi
  • 0

Abstract

PyVBMC is a Python implementation of the Variational Bayesian Monte Carlo(VBMC) algorithm for posterior and model inference for black-box computationalmodels (Acerbi, 2018, 2020). VBMC is an approximate inference method designedfor efficient parameter estimation and model assessment when model evaluationsare mildly-to-very expensive (e.g., a second or more) and/or noisy.Specifically, VBMC computes: - a flexible (non-Gaussian) approximate posterior distribution of the modelparameters, from which statistics and posterior samples can be easilyextracted; - an approximation of the model evidence or marginal likelihood, a metricused for Bayesian model selection. PyVBMC can be applied to any computational or statistical model with up toroughly 10-15 continuous parameters, with the only requirement that the usercan provide a Python function that computes the target log likelihood of themodel, or an approximation thereof (e.g., an estimate of the likelihoodobtained via simulation or Monte Carlo methods). PyVBMC is particularlyeffective when the model takes more than about a second per evaluation, withdramatic speed-ups of 1-2 orders of magnitude when compared to traditionalapproximate inference methods. Extensive benchmarks on both artificial test problems and a large number ofreal models from the computational sciences, particularly computational andcognitive neuroscience, show that VBMC generally - and often vastly -outperforms alternative methods for sample-efficient Bayesian inference, and isapplicable to both exact and simulator-based models (Acerbi, 2018, 2019, 2020).PyVBMC brings this state-of-the-art inference algorithm to Python, along withan easy-to-use Pythonic interface for running the algorithm and manipulatingand visualizing its results.

 

Quick Read (beta)

loading the full paper ...