Skip to content

ft-lakr/entropy-pooling

 
 

Repository files navigation

pytest codecov Binder

Entropy Pooling in Python

Due to popular demand from developers, this package contains the Entropy Pooling implementation from the fortitudo.tech Python package with a more permissive BSD 3-Clause license.

This package contains only one function called ep and has minimal dependencies with just scipy. See this example for how you can import and use the ep function.

You can explore the example without local installations using Binder.

Installation instructions

Installation can be done via pip:

pip install entropy-pooling

Theory

Entropy Pooling is a powerful method for implementing subjective views and performing stress-tests for fully general Monte Carlo distributions. It was first introduced by Meucci (2008) and refined with sequential algorithms by Vorobets (2021).

The original Entropy Pooling approach solves the minimum relative entropy problem

$$q=\underset{x}{\text{argmin}}\lbrace x^{T}\left(\ln x-\ln p\right)\rbrace$$

subject to the constraints

$$Gx\leq h \quad \text{and} \quad Ax=b.$$

The constraints matrices $A$ and $G$ contain transformations of the Monte Carlo simulation that allow you to implement subjective views and stress-tests by changing the joint scenario probabilities from a prior probability vector $p$ to a posterior probability vector $q$.

A useful statistic when working with Entropy Pooling is the effective number of scenarios introduced by Meucci (2012). For a causal Bayesian nets overlay on top of Entropy Pooling, see Vorobets (2023).

About

Entropy Pooling in Python with a BSD 3-Clause license.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 85.8%
  • Python 14.2%