Jupyter Notebook Python Makefile
Latest commit 7b65a4a Feb 2, 2017 @vuolleko vuolleko committed on GitHub Merge pull request #119 from HIIT/graphviz_fix
Graphviz fix


ELFI - Engine for Likelihood-Free Inference

Build Status Code Health Documentation Status Gitter chat

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:

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.

Optional dependencies:

  • graphviz for drawing graphical models (needs dot from the full Graphviz)
  • unqlite for 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 yaml.load, install pyyaml.
  • On OS X with Anaconda virtual environment say conda install python.app and then use pythonw instead of python.
  • Note that ELFI currently supports Python 3.5 only, although 3.x may work as well.