sensitivity.sensitivity_sampling

sensitivity.sensitivity_sampling

Sampling-based sensitivity and uncertainty analysis.

This module implements a sampling-based sensitivity and uncertainty analysis approach. Model parameters are varied simultaneously within their bounds, and the resulting distribution of model outputs is analyzed statistically.

Parameter samples are generated using Latin Hypercube Sampling (LHS), assuming independent and uniformly distributed parameters.

For each analysis group and output variable, descriptive statistics are computed, including:

  • mean and median
  • standard deviation and coefficient of variation
  • minimum and maximum
  • lower and upper quantiles (5% and 95%)

Uncertainty is calculated as Ui,j = (Percentile97.5(i,j) - Percentile2.5(i,j)) / Percentile50(i,j)

This approach focuses on uncertainty propagation rather than variance-based sensitivity indices and is therefore complementary to local and Sobol-based methods.

Classes

Name Description
SamplingSensitivityAnalysis Sensitivity/uncertainty analysis based on sampling.

SamplingSensitivityAnalysis

sensitivity.sensitivity_sampling.SamplingSensitivityAnalysis(
    sensitivity_simulation,
    parameters,
    groups,
    results_path,
    N,
    seed=None,
    n_cores=None,
    cache_results=False,
)

Sensitivity/uncertainty analysis based on sampling.

Methods

Name Description
calculate_sensitivity Calculate the sensitivity matrices for sampling sensitivity.
create_samples Create LHS samples.
plot Boxplots for the Sampling sensitivity.
plot_data Boxplots for the sampled output.
calculate_sensitivity
sensitivity.sensitivity_sampling.SamplingSensitivityAnalysis.calculate_sensitivity(
    cache_filename=None,
    cache=False,
)

Calculate the sensitivity matrices for sampling sensitivity.

create_samples
sensitivity.sensitivity_sampling.SamplingSensitivityAnalysis.create_samples()

Create LHS samples.

Latin hypercube sampling (LHS) is a stratified sampling method used to generate near‑random samples from a multidimensional distribution for Monte Carlo simulations and computer experiments.

Assuming uniform distributions within the provided bounds.

Use LHS sampling of parameters.

plot
sensitivity.sensitivity_sampling.SamplingSensitivityAnalysis.plot(**kwargs)

Boxplots for the Sampling sensitivity.

plot_data
sensitivity.sensitivity_sampling.SamplingSensitivityAnalysis.plot_data(
    type,
    show_jitter=True,
    show_violin=True,
    **kwargs,
)

Boxplots for the sampled output.