Skip to content

tostenzel/hypermodern-screening

Repository files navigation

image

image

image

image

Codacy Badge

The hypermodern-screening package provides tools for efficient global sensitivity analyses based on elementary effects. Its unique feature is the option to compute these effects for models with correlated input parameters. The underlying conceptual approach is developed by Stenzel (2020). The fundamental idea comes from Ge and Menendez (2017). It is the combination of inverse transform sampling with an intelligent juggling of parameter positions in the input vector to create different dependency hierarchies. The package does also include a variety of sampling methods.

The name hypermodern-screening is inspired by the brilliant series of blog articles about cutting-edge tools for python development by Claudio Jolowicz in 2020. He calls his guide "Hypermodern Python"*. Its corner stones are poetry for packaging and dependency management and nox for automated testing. Another recommendation is rigorous typing. The repository framework widely follows the blog series.

Read the documentation here and install hypermodern-screening from PyPI with

$ pip install hypermodern_screening

image

**

References

Stenzel, T. (2020): Uncertainty Quantification for an Eckstein-Keane-Wolpin Model with Correlated Input Parameters. Master's Thesis, University of Bonn.

Ge, Q. and Menendez, M. (2017). Extending Morris method for qualitative global sensitivity analysis of models with dependent inputs. Reliability Engineering & System Safety 100(162), 28-39.

Quick start

import hypermodern_screening as hms

# Define the model in pseudocode.
def qoi_model(input_parameters)
    return qoi

# Generate list of input samples in radial design.
rad_list, step_list = hms.radial_sample(n_sample, n_inputs, normal=True)

# Compute uncorrelated and correlated elementary effects and statistics thereof.
measures_list, ees_list = hms.screening_measures(
    qoi_model,
    rad_list,
    step_list,
    cov_inputs,
    mu_inputs,
    radial=True
)

# Compute sigma-normalized statistics of elementary effects.
measures_sigma_norm = hms.compute_measures(ees_list, sd_qoi, sd_inputs, sigma_norm=True)

`*`: Claudio, in turn, was inspired by the chess book "Die hypermoderne Schachpartie" (1925) by Savielly Tartakower.

`*`: The image is a detail from the photogravureParis by night* by Albert Robida, 1883 (via Old Book Illustrations).

About

Tools for efficient global sensitivity analyses for models with correlated input parameters.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages