GSobolSensitivity

class GSobolSensitivity(a=[0.0, 9.0, 99.0])

Class to define the g-Sobol’ sensitivity benchmark problem.

Methods

getFirstOrderIndices()

Returns the first order Sobol' sensitivity indices.

getFunction()

Returns the function.

getInputDistribution()

Returns the input distribution.

getName()

Returns the name of the problem.

getTotalOrderIndices()

Returns the total order Sobol' sensitivity indices.

__init__(a=[0.0, 9.0, 99.0])

Create the g-Sobol sensitivity problem.

g(\boldsymbol{x}) = \prod_{i=1}^d g_i(x_i)

for any \boldsymbol{x} \in \mathbb{R}^d where:

g_i(x_i) = \frac{\lvert 4 x_i - 2\rvert + a_i}{1 + a_i}

for i \in \{ 1, \dots, d\}. The input random variables have the Uniform distribution:

X_i \sim \mathcal{U}(0,1)

for i \in \{ 1, \dots, d\} where \mathcal{U} is the Uniform distribution.

The input random variables are independent.

The default dimension is equal to d=3.

Parameters:
asequence of floats

The coefficients of the linear sum, with length d + 1.

Notes

The dimension of the problem can be changed. The exact sensitivity indices are computed from the vector \boldsymbol{a}.

The function g has no derivative at \boldsymbol{x} = (1/2, \dots, 1/2)^\top.

The function g is symmetric with respect to \boldsymbol{x} = (1/2, \dots, 1/2)^\top.

When a_i increases, the variable X_i has a first-order index closer to zero.

A detailed analysis follows:

  • If a_i = 0, then the variable X_i is important, since 0 \le g_i(x) \le 2.

  • If a_i = 9, then the variable X_i is non-important, since 0.90 \le g_i(x) \le 1.10.

  • If a_i = 99, then the variable X_i is non-significant, since 0.99 \le g_i(x) \le 1.01.

The model was first introduced in (Saltelli & Sobol’, 1995).

References

  • Saltelli, A., & Sobol’, I. Y. M. (1994). Sensitivity analysis for nonlinear mathematical models: numerical experience. Matematicheskoe Modelirovanie, 7(11), 16-28.

  • Saltelli, A., & Sobol’, I. M. (1995). About the use of rank transformation in sensitivity analysis of model output. Reliability Engineering & System Safety, 50(3), 225-239.

  • Marrel, A., Iooss, B., Van Dorpe, F., & Volkova, E. (2008). An efficient methodology for modeling complex computer codes with Gaussian processes. Computational Statistics & Data Analysis, 52(10), 4731-4744.

  • Saltelli, A., Chan, K., & Scott, E. M. (Eds.). (2000). Sensitivity analysis (Vol. 134). New York: Wiley.

Examples

>>> import otbenchmark as otb
>>> problem = otb.GSobolSensitivity()
getFirstOrderIndices()

Returns the first order Sobol’ sensitivity indices.

Parameters:
None.
Returns:
firstOrderIndices: ot.Point

The first order sensitivity indices.

getFunction()

Returns the function.

Parameters:
None.
Returns:
function: ot.Function

The function.

getInputDistribution()

Returns the input distribution.

Parameters:
None.
Returns:
distribution: ot.Distribution

The distribution.

getName()

Returns the name of the problem.

Parameters:
None.
Returns:
name: str

The name.

getTotalOrderIndices()

Returns the total order Sobol’ sensitivity indices.

Parameters:
None.
Returns:
totalOrderIndices: ot.Point

The total order sensitivity indices.