ELFI - Engine for Likelihood-Free Inference
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, but the Gitter chat is preferable.
pip install elfi
ELFI is currently tested only with Python 3.5. If you are new to Python, perhaps the simplest way to install it is Anaconda.
Currently it is required to use Distributed 1.14.3.
graphvizfor drawing graphical models (needs
dotfrom the full Graphviz)
unqlitefor using NoSQL storage
Virtual environment using Anaconda
If you want to create a virtual environment before installing, you can do so with Anaconda:
conda create -n elfi python=3.5 scipy source activate elfi pip install elfi
Potential problems with installation
ELFI depends on several other Python packages, which have their own dependencies. Resolving these may sometimes go wrong:
- If you receive an error about missing
numpy, please install it first.
- If you receive an error about
- On OS X with Anaconda virtual environment say
conda install python.appand then use
- Note that ELFI currently supports Python 3.5 only, although 3.x may work as well.