Democratizing Advanced Probability Tools
The Computational Probability Lab at the Las Vegas Institute of Probability Theory is thrilled to announce the first stable release (v1.0) of ProbLib, a comprehensive, open-source Python library for probabilistic modeling and simulation. Developed over three years with a philosophy of clarity, performance, and pedagogical value, ProbLib is now available for installation via PyPI. It is released under the permissive MIT license, encouraging use in both academic and commercial settings.
Core Features and Capabilities
ProbLib is designed to be both a powerful research tool and an accessible educational resource. Its architecture is modular and well-documented.
1. Rich Distribution Library: Beyond standard distributions in SciPy, ProbLib includes numerous specialized and modern distributions: Variance-Gamma, Normal Inverse Gaussian, Tukey-Lambda, and a full suite of copulas (Gaussian, t, Clayton, Gumbel). Each distribution object comes with methods not just for PDF/CDF/RV generation, but also for efficient fitting via method of moments, maximum likelihood, and Bayesian inference.
2. Stochastic Process Framework: A flagship feature is a flexible object-oriented framework for defining and simulating stochastic processes. Easily construct and sample from:
- Brownian motion, geometric Brownian motion.
- Ornstein-Uhlenbeck processes and Cox-Ingersoll-Ross models.
- Poisson processes and compound Poisson processes.
- Custom Markov chains defined by transition matrices or functions.
- Regime-switching models with user-defined state dynamics.
3. Advanced Simulation Utilities: Built-in, optimized implementations of variance reduction techniques (antithetic, control variates, importance sampling with adaptive proposals) and quasi-Monte Carlo sequences. Also includes tools for designing and analyzing simulation experiments, including automatic convergence diagnostics for MCMC.
4. Symbolic Probability Engine (Beta): An integrated SymPy-based module allows for the symbolic manipulation of random variables. You can define distributions symbolically, compute exact expressions for moments, convolutions, or transformations, and then seamlessly convert to numerical sampling. This is a unique feature aimed at teaching and theoretical exploration.
Getting Started and Community
Installation is simple: pip install lvipt-problib. The documentation includes detailed tutorials, from basic "First Steps with a Random Walk" to advanced cases like "Calibrating a Heston Stochastic Volatility Model." A suite of Jupyter notebooks replicates examples from classic textbooks, making it an ideal companion for graduate courses.
"We built ProbLib because we needed a unified tool for our own research that didn't force us to glue together five different libraries," said project lead Dr. Sam Rivera. "We wanted something where the code reads like the mathematics. We're committed to maintaining it and building a community around it."
The institute will host a dedicated forum for ProbLib users and contributors. We already have plans for v1.1, which will include modules for stochastic differential equations (SDEs) and more advanced filtering algorithms. By releasing ProbLib, we hope to lower the barrier to sophisticated probabilistic modeling and encourage reproducible research across numerous fields. We invite you to try it, use it, and contribute to its growth.