GaussianProductSensitivity

class GaussianProductSensitivity(mu=[0.0, 0.0], sigma=[1.0, 1.0])

Class to define a linear sum 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__(mu=[0.0, 0.0], sigma=[1.0, 1.0])

Create a gaussian product sensitivity problem.

g(\boldsymbol{x}) = x_1 \, x_2 \, \cdots \, x_d

for any \boldsymbol{x} \in \mathbb{R}^d. We assume that the input random variables have Gaussian distributions:

X_i \sim \mathcal{N}\left(\mu_i,\ \sigma_i^2\right)

for i \in \{1, \dots, d\}.

The default dimension is d = 2.

The variance of the model output is:

\text{Var}(Y) = \prod_{i=1}^{d} \left(\mu_i^2 + \sigma_i^2\right)
    - \prod_{i=1}^{d} \mu_i^2

The first order Sobol’ index for the i-th variable is:

S_i = \frac{\sigma_i^2 \prod_{j=1, j \neq i}^{d} \mu_j^2}{\text{Var}(Y)}

The total order Sobol’ index for the i-th variable is:

S_{T_i} = 1 - \frac{\mu_i^2
    \prod_{j=1, j \neq i}^{d} \left(\mu_j^2 + \sigma_j^2\right)
        - \prod_{j=1}^{d} \mu_j^2}{\text{Var}(Y)}

This case is interesting because interactions matters.

Parameters:
musequence of floats

The mean of the gaussian distributions, with length d.

sigmasequence of floats

The standard deviations of the gaussian distributions, with length d.

References

  • “Sensitivity analysis examples with NISP”, Michael Baudin (INRIA), Jean-Marc Martinez (CEA)

Examples

>>> import otbenchmark as otb
>>> problem = otb.LinearSumSensitivity()
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.