Skip to main content

uncertainty-propagation: Tools to propagate parameter uncertainty through deterministic black-box functions

Image: Monte Carlo simulation to approximate 1-d function distribution

The uncertainty-propagation library provides efficient and scalable methods for approximating the output distribution of $Y=f(X)$, i.e. the probability $P(Y \leq y)$, when the input $X$ is a random variable with a known distribution. It is especially useful for complex, black-box functions where analytical solutions are infeasible. Methods like Monte Carlo simulation, directional simulation, and subset simulation as well as first-order reliability method and importance sampling are integrated to provide flexible and scalable uncertainty propagation.

Visual example

Consider the 2-d Rastrigin function:

Image: Modified 2-d Rastrigin function

Animations below show how directional and subset simulation tackle the same problem in different ways, achieving similar approximation accuracy with a fraction of the Monte Carlo sample budget:

Image: Directional simulation to approximate 2-d function distribution Image: Subset simulation to approximate 2-d function distribution

Features

  • Optimized for Speed: Uses parallelization to maximize performance.
  • Minimal Dependencies: Built with as few dependencies as possible.
  • Machine Learning Friendly: Designed to integrate seamlessly with machine learning applications using vectorized function calls.
  • Extensible Framework: Easily integrate new methods and benchmark different approaches.

Installation

Install the package from PyPI using

pip install uncertainty-propagation

Usage

Documentation is under construction and will soon be available on ReadTheDocs. In the meantime, explore the examples or dive into the source code to see the library in action.

Citing

If this repository has assisted you in your research, please consider citing one of the following works:

  • Journal Paper on Uncertainty Optimization:
@Article{Bogoclu2021,
  title       = {Local {L}atin hypercube refinement for multi-objective design uncertainty optimization},
  author      = {Can Bogoclu and Tamara Nestorovi{\'c} and Dirk Roos},
  journal     = {Applied Soft Computing},
  year        = {2021},
  arxiv       = {2108.08890},
  doi         = {10.1016/j.asoc.2021.107807},
  pdf         = {https://www.sciencedirect.com/science/article/abs/pii/S1568494621007286},
}
  • PhD Thesis on Uncertainty Quantification and Optimization:
@phdthesis{Bogoclu2022,
  title       = {Local {L}atin hypercube refinement for uncertainty quantification and optimization: {A}ccelerating the surrogate-based solutions using adaptive sampling},
  author      = {Bogoclu, Can},
  school      = {Ruhr-Universit\"{a}t Bochum},
  type         = {PhD thesis},
  year        = {2022},
  doi         = {10.13154/294-9143},
  pdf         = {https://d-nb.info/1268193348/34},
}

Release files for uncertainty-propagation 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uncertainty-propagation 0.0.2
File Size Uploaded
uncertainty_propagation-0.0.2.tar.gz 20.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uncertainty-propagation 0.0.2
File Interpreter ABI Platform
uncertainty_propagation-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 46.9 kB

Release files / uncertainty_propagation-0.0.2.tar.gz

Download URL uncertainty_propagation-0.0.2.tar.gz
Size 20.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b15dd149227d15a22cda73fa2ddb4ac8d62376ea9ff25645b15351a6fa5c3c16
BLAKE2b-256 checksum
How to use checksums
9ec39d53c5aa6b0e99aa5ca91d329aaeeb1660186cdc0c33c9f0658a7946f82c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.12.3 Linux/6.8.0-1021-azure

Release files / uncertainty_propagation-0.0.2-py3-none-any.whl

Download URL uncertainty_propagation-0.0.2-py3-none-any.whl
Size 26.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
65303c44dd211b0e98605e42d3e756f4e18e48cae536a80f1083345c5277d0c6
BLAKE2b-256 checksum
How to use checksums
f0a83144486758ed47bc3f5f62e1e1137ad63a0b1bcac6339280372517f33fb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.12.3 Linux/6.8.0-1021-azure

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page