Skip to content

Latest commit

 

History

History
93 lines (56 loc) · 4.44 KB

sobol.rst

File metadata and controls

93 lines (56 loc) · 4.44 KB

Sobol indices

Sobol indices are the standard approach for performing a global sensitivity analysis. The indices are based on a variance decomposition of the model output. Using this decomposition allows us to assign the contribution of uncertain inputs to the variance of the model output.

There are three main groups of indices:

  • First order indices (Si): Describe the fraction of the output variance due to a single uncertain input parameter i. This amount of variance can be reduced if the uncertainty in the corresponding input is eliminated.
  • Higher order indices: Describe the fraction of the output variance due to interactions between uncertain input parameters. For example, the second order indices (Sij) describe the fraction of the output variance due to interactions between two uncertain input parameters i and j.
  • Total order indices (STi): Describe the fraction of the output variance due to a single input parameter i and all higher order effects of the input parameter.

If the first order index of an input parameter is equal to the total order index it implies that the parameter does not have any interaction effects.

The Sobol indices are typically computed using the Pick-and-Freeze approach for single output and multi-output models. Since there are several variants of the Pick-and-Freeze approach, the schemes implemented to compute Sobol indices are listed below:

Here, N is the Monte Carlo sample size and m is the number of input parameters in the model.

  1. First order indices (Si)
  • Janon2014: Requires N(m + 1) model evaluations

$$\frac{\mathbb{V}\left[E\left(Y \mid X_{i}\right)\right]}{\mathbb{V}(Y)} = \frac{\operatorname{Cov}\left(Y, Y_{C_{i}}\right)}{\mathbb{V}(Y)} = \frac{ (1 / N) Y_{A} \cdot Y_{C_{i}}-f_{0}^{2}}{ (1 / N)\frac{Y_{A} \cdot Y_{A} + Y_{C_{i}} \cdot Y_{C_{i}}}{2}-f_{0}^{2}}$$

$$y_{A}=f(A), \quad y_{C_{i}}=f(C_{i}), \quad f_{0}^{2}=\left(\frac{1}{2N} \sum_{j=1}^{N} y_{A}^{(j)} + y_{C_{i}}^{(j)} \right)^{2}$$

Compared to "Sobol1993", the "Janon2014" estimator makes more efficient use of model evaluations and produces smaller (better) confidence intervals.

  • Sobol1993: Requires N(m + 1) model evaluations saltelli_2008.

$$S_{i} = \frac{\mathbb{V}\left[E\left(Y \mid X_{i}\right)\right]}{\mathbb{V}(Y)} = \frac{ (1/N) Y_{A} \cdot Y_{C_{i}}-f_{0}^{2}}{(1 / N) Y_{A} \cdot Y_{A}-f_{0}^{2}}$$

$$y_{A}=f(A), \quad y_{C_{i}}=f(C_{i}), \quad f_{0}^{2}=\left(\frac{1}{N} \sum_{j=1}^{N} y_{A}^{(j)} \right)^{2}$$

  • Saltelli2002: Requires N(2m + 2) model evaluations saltelli_2002.
  1. Second order indices (Sij)
  • Saltelli2002: Requires N(2m + 2) model evaluations saltelli_2002.
  1. Total order indices (STi)
  • Homma1996: Requires N(m + 1) model evaluations saltelli_2008.

$$S_{T_{i}} = 1 - \frac{\mathbb{V}\left[E\left(Y \mid \mathbf{X}_{\sim_{i}}\right)\right]}{\mathbb{V}(Y)} = 1 - \frac{ (1 / N) Y_{B} \cdot Y_{C_{i}}-f_{0}^{2}}{(1 / N) Y_{A} \cdot Y_{A}-f_{0}^{2}}$$

$$y_{A}=f(A), \quad y_{B}=f(B), \quad y_{C_{i}}=f(C_{i}), \quad f_{0}^{2}=\left(\frac{1}{2N} \sum_{j=1}^{N} y_{A}^{(j)} + y_{B}^{(j)} \right)^{2}$$

  • Saltelli2002: Requires N(2m + 2) model evaluations saltelli_2002.

Sobol Class

The .SobolSensitivity class is imported using the following command:

>>> from UQpy.sensitivity.SobolSensitivity import SobolSensitivity

Methods

UQpy.sensitivity.SobolSensitivity

Attributes

UQpy.sensitivity.SobolSensitivity.first_order_indices

UQpy.sensitivity.SobolSensitivity.second_order_indices

UQpy.sensitivity.SobolSensitivity.total_order_indices

UQpy.sensitivity.SobolSensitivity.first_order_confidence_interval

UQpy.sensitivity.SobolSensitivity.second_order_confidence_interval

UQpy.sensitivity.SobolSensitivity.total_order_confidence_interval

UQpy.sensitivity.SobolSensitivity.n_samples

UQpy.sensitivity.SobolSensitivity.n_variables

UQpy.sensitivity.SobolSensitivity.is_multi_output

Examples

Sobol Examples <../auto_examples/sensitivity/sobol/index>