OakleyOHaganSensitivity

class OakleyOHaganSensitivity

Class to define a Oakley-O’Hagan 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__()

Create a Oakley-O’Hagan sensitivity problem.

The function is defined by the equation:

g(x) = x'Mx+a1'x + a2' sin(x) + a3'cos(x)

where x1, …, x15 ~ N(0, 1).

The input random variables are independent.

Notes

The dimension and parameters of this problem cannot be changed. The Sobol’ sensitivity indices are estimate with as much accuracy as possible.

The model was first introduced in (Oakley, O’Hagan, 2004).

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 6. 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

  • Oakley, J. E., & O’Hagan, A. (2004). Probabilistic sensitivity analysis of complex models: a Bayesian approach. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 66(3), 751-769.

  • Derek Bingham, https://www.sfu.ca/~ssurjano/oakoh04.html

Examples

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