ELFI is a statistical software package written in Python for Approximative Bayesian Computation (ABC), also known as likelihood-free inference, simulator-based inference, approximative Bayesian inference etc. This is useful, when the likelihood function is unknown or difficult to evaluate, but a generative simulator model exists.
The probabilistic inference model is defined as a directed acyclic graph, which allows for an intuitive means to describe inherent dependencies in the model. The inference pipeline is automatically parallelized with Dask, which scales well from a desktop up to a cluster environment. The package includes functionality for input/output operations and visualization.
Currently implemented ABC methods:
- rejection sampler
- sequential Monte Carlo sampler
- Bayesian Optimization for Likelihood-Free Inference (BOLFI) framework
See examples under notebooks to get started. Full documentation can be found at http://elfi.readthedocs.io/. Limited user-support may be asked from elfi-support.at.hiit.fi.
ELFI is currently tested only with Python 3.5. If you are new to Python, perhaps the simplest way to install it is Anaconda.
git clone https://github.com/HIIT/elfi.git
cd elfi
pip install numpy
pip install -r requirements-dev.txt
pip install -e .
It is recommended to create a virtual environment for development before installing.
Below an example how to create a virtual environment named elfi
using Anaconda:
conda create -n elfi python=3* scipy
Then activate it:
source activate elfi