BAMresearch / probeye

A general framework for setting up parameter estimation problems.
MIT License
5 stars 5 forks source link

probeye

Continuous integration PyPI version python versions coverage Code style: black

This package provides a transparent and easy-to-use framework for solving parameter estimation problems (i.e., inverse problems) primarily via sampling methods in a characteristic two-step approach.

  1. In the first step, the problem at hand is defined in a solver-independent fashion, i.e., without specifying which computational means are supposed to be utilized for finding a solution.
  2. In the second step, the problem definition is handed over to a user-selected solver, that finds a solution to the problem. The currently supported solvers focus on Bayesian methods for posterior sampling.

Due to the broad variety of existing inference engine packages, probeye does not contain self-written implementations of solvers but merely interfaces with existing ones. It currently provides interfaces with emcee for MCMC sampling and with dynesty for nested sampling. It also provides two point-estimate solvers for maximum likelihood as well as maximum a-posteriori estimates based on scipy.

The parameter estimation problems probeye aims at are problems that are centered around forward models that are computationally expensive (e.g., parameterized finite element models), and the corresponding observations of which are not particularly numerous (typically around tens or hundreds of experiments). Such problems are often encountered in engineering problems where simulation models are calibrated based on laboratory tests, which are - due to their relatively high costs - not available in high numbers.

The source code of probeye is jointly developed by Bundesanstalt für Materialforschung und -prüfung (BAM) and Netherlands Organisation for applied scientific research (TNO) for calibrating parameterized physics-based models and quantifying uncertainties in the obtained parameter estimates.

Documentation

A documentation including explanations on the package's use as well as some examples can be found here.