GetDist: a Python package for analysing Monte Carlo samples
Antony Lewis
TL;DR
GetDist provides a KDE-based framework for analyzing Monte Carlo samples from Bayesian inference, addressing weights, correlations, and prior boundaries. It implements boundary-corrected kernels, multiplicative bias correction, and ISJ-DCT bandwidth selection to deliver accurate density estimates and uncertainty quantification. The package supports fast 1D/2D density estimates, convergence diagnostics, and publication-quality plotting and tables, with both scriptable and GUI interfaces. Although motivated by cosmology, the methods are general and broadly applicable to low-dimensional marginalized densities.
Abstract
Monte Carlo techniques, including MCMC and other methods, are widely used in Bayesian inference to generate sets of samples from a parameter space of interest. The Python GetDist package provides tools for analysing these samples and calculating marginalized one- and two-dimensional densities using Kernel Density Estimation (KDE). Many Monte Carlo methods produce correlated and/or weighted samples, for example produced by MCMC, nested, or importance sampling, and there can be hard boundary priors. GetDist's baseline method consists of applying a linear boundary kernel, and then using multiplicative bias correction. The smoothing bandwidth is selected automatically following Botev et al., based on a mixture of heuristics and optimization results using the expected scaling with an effective number of samples (defined here to account for both MCMC correlations and weights). Two-dimensional KDE uses an automatically-determined elliptical Gaussian kernel for correlated distributions. The package includes tools for producing a variety of publication-quality figures using a simple named-parameter interface, as well as a graphical user interface that can be used for interactive exploration. It can also calculate convergence diagnostics, produce tables of limits, and output in LaTeX, and is publicly available.
