All Projects → elfi-dev → Elfi

elfi-dev / Elfi

Licence: bsd-3-clause
ELFI - Engine for Likelihood-Free Inference

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Elfi

Projpred
Projection predictive variable selection
Stars: ✭ 76 (-63.46%)
Mutual labels:  statistics, bayesian-inference, bayesian
BayesHMM
Full Bayesian Inference for Hidden Markov Models
Stars: ✭ 35 (-83.17%)
Mutual labels:  statistics, bayesian, bayesian-inference
Bayadera
High-performance Bayesian Data Analysis on the GPU in Clojure
Stars: ✭ 342 (+64.42%)
Mutual labels:  statistics, bayesian-inference, bayesian
Matlabstan
Matlab interface to Stan, a package for Bayesian inference
Stars: ✭ 59 (-71.63%)
Mutual labels:  statistics, bayesian
Pyro
Deep universal probabilistic programming with Python and PyTorch
Stars: ✭ 7,224 (+3373.08%)
Mutual labels:  bayesian-inference, bayesian
Autoppl
C++ template library for probabilistic programming
Stars: ✭ 34 (-83.65%)
Mutual labels:  bayesian-inference, bayesian
Bda py demos
Bayesian Data Analysis demos for Python
Stars: ✭ 781 (+275.48%)
Mutual labels:  bayesian-inference, bayesian
Bayesian Cognitive Modeling In Pymc3
PyMC3 codes of Lee and Wagenmakers' Bayesian Cognitive Modeling - A Pratical Course
Stars: ✭ 93 (-55.29%)
Mutual labels:  statistics, bayesian-inference
Bat.jl
A Bayesian Analysis Toolkit in Julia
Stars: ✭ 82 (-60.58%)
Mutual labels:  statistics, bayesian-inference
Probflow
A Python package for building Bayesian models with TensorFlow or PyTorch
Stars: ✭ 95 (-54.33%)
Mutual labels:  statistics, bayesian-inference
Statistical Rethinking
An interactive online reading of McElreath's Statistical Rethinking
Stars: ✭ 123 (-40.87%)
Mutual labels:  statistics, bayesian
Looper
A resource list for causality in statistics, data science and physics
Stars: ✭ 23 (-88.94%)
Mutual labels:  statistics, bayesian-inference
Scikit Stan
A high-level Bayesian analysis API written in Python
Stars: ✭ 22 (-89.42%)
Mutual labels:  bayesian-inference, bayesian
Rhat ess
Rank-normalization, folding, and localization: An improved R-hat for assessing convergence of MCMC
Stars: ✭ 19 (-90.87%)
Mutual labels:  bayesian-inference, bayesian
Psycho.r
An R package for experimental psychologists
Stars: ✭ 113 (-45.67%)
Mutual labels:  statistics, bayesian
Glmm In Python
Generalized linear mixed-effect model in Python
Stars: ✭ 131 (-37.02%)
Mutual labels:  statistics, bayesian-inference
Pumas.jl
Pharmaceutical Modeling and Simulation for Nonlinear Mixed Effects (NLME), Quantiative Systems Pharmacology (QsP), Physiologically-Based Pharmacokinetics (PBPK) models mixed with machine learning
Stars: ✭ 84 (-59.62%)
Mutual labels:  statistics, bayesian-inference
Dynamichmc.jl
Implementation of robust dynamic Hamiltonian Monte Carlo methods (NUTS) in Julia.
Stars: ✭ 172 (-17.31%)
Mutual labels:  bayesian-inference, bayesian
Bayesian Analysis Recipes
A collection of Bayesian data analysis recipes using PyMC3
Stars: ✭ 479 (+130.29%)
Mutual labels:  bayesian-inference, bayesian
Bayesian Stats Modelling Tutorial
How to do Bayesian statistical modelling using numpy and PyMC3
Stars: ✭ 480 (+130.77%)
Mutual labels:  bayesian-inference, bayesian

Version 0.7.7 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 http://elfi.readthedocs.io/. Limited user-support may be asked from elfi-support.at.hiit.fi, but the Gitter chat is preferable.

Installation with pip

ELFI requires Python 3.6 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.

Installation from conda-forge

Installing elfi from the conda-forge channel can be achieved by adding conda-forge to your channels with:

conda config --add channels conda-forge

Once the conda-forge channel has been enabled, elfi can be installed with:

conda install elfi

It is possible to list all of the versions of elfi available on your platform with:

conda search elfi --channel conda-forge

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.6 numpy
source activate elfi
pip install elfi

Docker container

A simple Dockerfile with Jupyter support is also provided. This is especially suitable for running tests. Please see Docker documentation for details.

git clone --depth 1 https://github.com/elfi-dev/elfi.git
cd elfi
make docker-build  # builds the image with requirements for dev
make docker  # runs a container with live elfi directory

To open a Jupyter notebook, run

jupyter notebook --ip 0.0.0.0 --no-browser --allow-root

within the container and then on host open the page http://localhost:8888.

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 requires Python 3.6 or greater so try pip3 install elfi.
  • Make sure your Python installation meets the versions listed in requirements.txt.

Citation

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

@article{JMLR:v19:17-374,
  author  = {Jarno Lintusaari and Henri Vuollekoski and Antti Kangasr{\"a}{\"a}si{\"o} and Kusti Skyt{\'e}n and Marko J{\"a}rvenp{\"a}{\"a} and Pekka Marttinen and Michael U. Gutmann and Aki Vehtari and Jukka Corander and Samuel Kaski},
  title   = {ELFI: Engine for Likelihood-Free Inference},
  journal = {Journal of Machine Learning Research},
  year    = {2018},
  volume  = {19},
  number  = {16},
  pages   = {1-7},
  url     = {http://jmlr.org/papers/v19/17-374.html}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].