ELFI: Engine for Likelihood-Free Inference

Authors: Jarno Lintusaari, Henri Vuollekoski, Antti Kangasrääsiö, Kusti Skytén, Marko Järvenpää, Pekka Marttinen, Michael U. Gutmann, Aki Vehtari, Jukka Corander, Samuel Kaski

JMLR 2018 | Venue PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental Engine for Likelihood-Free Inference (ELFI) is a Python software library for performing likelihood-free inference (LFI). ELFI provides a convenient syntax for arranging components in LFI, such as priors, simulators, summaries or distances, to a network called ELFI graph. The paper presents an example of an ELFI graph and of running ABC rejection sampling in ELFI (Figure 1), and includes a comparison to other general-purpose LFI frameworks (Table 1), indicating an empirical evaluation of a software system.
Researcher Affiliation Academia All listed authors are affiliated with universities: Aalto University, The University of Edinburgh, and University of Oslo. For example, 'Department of Computer Science Aalto University 00076 Aalto, Finland' and 'School of Informatics The University of Edinburgh Edinburgh, EH8 9AB, UK' clearly indicate academic affiliations.
Pseudocode Yes Figure 1 presents an example of an ELFI graph and of running ABC rejection sampling in ELFI, including a code block showing structured Python steps for defining and running a simulation and inference: '# Define the simulator, the summary and the observed data def simulator(t1, t2, batch_size=1, random_state=None): # Implementation comes here. Return batch_size # simulations wrapped to a Num Py array. def summary(data, argument=0): # Implementation comes here... y = # Observed data, as one element of a batch. # Specify the ELFI graph t1 = elfi.Prior( uniform , -2, 4) t2 = elfi.Prior( normal , t1, 5) # depends on t1 SIM = elfi.Simulator(simulator, t1, t2, observed=y) S1 = elfi.Summary(summary, SIM) S2 = elfi.Summary(summary, SIM, 2) d = elfi.Distance( euclidean , S1, S2) # Run the rejection sampler rej = elfi.Rejection(d, batch_size=10000) result = rej.sample(1000, threshold=0.1)'
Open Source Code Yes The paper explicitly states: 'ELFI has been designed to be open source and modular, and can be extended through interfaces.' It also provides a direct link to the GitHub repository: '3. The ELFI Git Hub repository can be found at https://github.com/elfi-dev/elfi.'
Open Datasets No The paper describes ELFI as a software library for likelihood-free inference and mentions 'testing new algorithms with models from the literature (e.g. Ricker, 1954; Marin et al., 2012; Lintusaari et al., 2017)'. However, it does not specify any particular datasets used in *this paper's* evaluation or demonstrations as publicly available with concrete access information (links, DOIs, repositories, or explicit citations for datasets).
Dataset Splits No The paper introduces the ELFI software library and provides illustrative code examples. It does not present specific experiments that would require detailing training/test/validation dataset splits, nor does it refer to predefined splits for any datasets used in its context.
Hardware Specification No The paper discusses ELFI's parallelization capabilities, stating that it supports computation 'from a single computer up to a computational cluster' and uses 'ipyparallel for parallelization'. However, it does not provide specific hardware details (e.g., CPU/GPU models, memory specifications) used by the authors for any experiments or demonstrations within the paper.
Software Dependencies No The paper states that 'ELFI is written in Python' and mentions that 'The computation of a single batch can often be vectorized with, for example, Num Py (van der Walt et al., 2011)'. It also implies ipyparallel as a backend. However, specific version numbers for Python, NumPy, or ipyparallel are not provided, which are required for a reproducible description of software dependencies.
Experiment Setup No The paper introduces the ELFI software library and provides an illustrative code example in Figure 1. This example includes some parameters for a rejection sampler such as `batch_size=10000` and `threshold=0.1`. However, these are part of a demonstration of the software's syntax rather than a detailed experimental setup with specific hyperparameters and training configurations for a study conducted within this paper.