MorrisSensitivity

class MorrisSensitivity(random_parameters=False)

Class to define the Morris 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__(random_parameters=False)

Define the Morris sensitivity benchmark problem.

The function g is from [0,1]^20 to R.

Its input distribution are Uniform([0, 1]) random variables. The input random variables are independent.

It is defined as the sum:

g(x) = beta_0 + sum_i beta[i] * w[i](x) + sum_{ij} beta[i, j] * w[i](x) * w[j](x) + sum_{ijk} beta[i, j, k] * w[i](x) * w[j](x) * w[k](x) + sum_{ijkl} beta[i, j, k, l] * w[i](x) * w[j](x) * w[k](x) * w[l](x)

where

w[i](x) = 2 * (x[i] - 0.5) for 𝑖=1,2,4,6,8,…,20

and

w[i](x) = 2 * (1.1 * x[i] / (x[i] + 1) - 0.5) for 𝑖=3,5,7.

In order to get consistent results, the default value of the random_parameters parameter is so that the parameters beta are constant, deterministic, values.

Parameters:
random_parameters: bool

Set to True to get random parameters.

Returns:
None.

Notes

The dimension of this problem is equal to 20 and cannot be changed.

The function is the sum of five functions. * The first is constant and equal to beta_0. * The second is a linear combination of w[i] coefficients. * The third is a order 2 combination of w[i] coefficients. * The fourth is a order 3 combination of w[i] coefficients. * The fifth is a order 4 combination of w[i] coefficients.

Therefore, Morris’s function is an order 4 polynomial.

This code was taken from otmorris/python/src/Morris.i.

The reference Sobol’ indices were computed from a sparse polynomial chaos. A Sobol’ low discrepancy design of experiments was generated with 500 training points. The sparse polynomial chaos expansion used an hyperbolic enumeration rule and a polynomial degree 4. The coefficients were estimated from regression. With 500 points in the validation set, the Q2 was greater than 98%. There are 2 significant digits in the reference results.

References

M. D. Morris, 1991, Factorial sampling plans for preliminary computational experiments,Technometrics, 33, 161–174.

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.