Python C++ Other
Clone or download
vuolleko Improve Dockerfile for testing (#284)
* Improve Dockerfile for testing

* Add compiled files to dockerignore

* Support Jupyter
Latest commit 83be924 Aug 15, 2018

Version 0.7.2 released! See the CHANGELOG and notebooks.

NOTE: For the time being NetworkX 2 is incompatible with ELFI.

ELFI - Engine for Likelihood-Free Inference

Build Status Code Health Documentation Status Gitter DOI

ELFI is a statistical software package written in Python for likelihood-free inference (LFI) such as Approximate Bayesian Computation (ABC). The term LFI refers to a family of inference methods that replace the use of the likelihood function with a data generating simulator function. ELFI features an easy to use generative modeling syntax and supports parallelized inference out of the box.

Currently implemented LFI methods:

Other notable included algorithms and methods:

ELFI also integrates tools for visualization, model comparison, diagnostics and post-processing.

See examples under notebooks to get started. Full documentation can be found at Limited user-support may be asked from, but the Gitter chat is preferable.


ELFI requires Python 3.5 or greater. You can install ELFI by typing in your terminal:

pip install elfi

or on some platforms using Python 3 specific syntax:

pip3 install elfi

Note that in some environments you may need to first install numpy with pip install numpy. This is due to our dependency to GPy that uses numpy in its installation.

Optional dependencies

  • graphviz for drawing graphical models (needs Graphviz), highly recommended

Installing Python 3

If you are new to Python, perhaps the simplest way to install a specific version of Python is with Anaconda.

Virtual environment using Anaconda

It is very practical to create a virtual Python environment. This way you won't interfere with your default Python environment and can easily use different versions of Python in different projects. You can create a virtual environment for ELFI using anaconda with:

conda create -n elfi python=3.5 numpy
source activate elfi
pip install elfi

Docker container

A simple Dockerfile for command-line interface is also provided. This is especially suitable for running tests. Please see Docker documentation for details.

git clone --depth 1
cd elfi
docker build -t elfi .
docker run -it 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 yaml.load, install pyyaml.
  • On OS X with Anaconda virtual environment say conda install and then use pythonw instead of python.
  • Note that ELFI requires Python 3.5 or greater so try pip3 install elfi.
  • Make sure your Python installation meets the versions listed in requirements.txt.


If you wish to cite ELFI, please use the paper in arXiv:

Author = {Jarno Lintusaari and Henri Vuollekoski and Antti Kangasrääsiö and Kusti Skytén and Marko Järvenpää and Pekka Marttinen and Michael Gutmann and Aki Vehtari and Jukka Corander and Samuel Kaski},
Title = {ELFI: Engine for Likelihood Free Inference},
Year = {2018},
Eprint = {arXiv:1708.00707},