Gaussian Process Uncertainty Propagation with PYthon

Project description

https://github.com/snphbaum/scikit-gpuppy

This package provides means for modeling functions and simulations using Gaussian processes (aka Kriging, Gaussian random fields, Gaussian random functions). Additionally, uncertainty can be propagated through the Gaussian processes.

A simulation is seen as a function $$f(x)+\epsilon$$ ($$x \in \mathbb{R}^n$$) with additional random error $$\epsilon \sim \mathcal{N}(0,v)$$. This optional error is due to the stochastic nature of most simulations.

The GaussianProcess module uses regression to model the simulation as a Gaussian process.

The UncertaintyPropagation module allows for propagating uncertainty $$x \sim \mathcal{N}(\mu,\Sigma)$$ through the Gaussian process to estimate the output uncertainty of the simulation.

The FFNI and TaylorPropagation modules provide classes for propagating uncertainty through deterministic functions.

The InverseUncertaintyPropagation module allows for propagating the desired output uncertainty of the simulation backwards through the Gaussian Process. This assumes that the components of the input $$x$$ are estimated from samples using maximum likelihood estimators. Then, the inverse uncertainty propagation calculates the optimal sample sizes for estimating $$x$$ that lead to the desired output uncertainty of the simulation.

Project details

Uploaded source