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.
Developer installation
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 we recommend using Distributed 1.14.3.
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.
Virtual environment using Anaconda
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