Sensitivity analysis test functions#

Test functions for parameter sensitivity analysis.

They were taken from

Ishigami and Homma (1990)

An importance qualification technique in uncertainty analysis for computer models, Proceedings of the isuma ‘90, First International Symposium on Uncertainty Modelling and Analysis, University of Maryland, Dec. 03 - Dec 05 1990, 398-403

Oakley and O’Hagan (2004)

Probabilistic sensitivity analysis of complex models: a Bayesian approach J. R. Statist. Soc. B 66, Part 3, 751-769.

Morris (1991)

Factorial sampling plans for preliminary computational experiments, Technometrics 33, 161-174.

Saltelli et al. (2008)

Global Sensitivity Analysis. The Primer, John Wiley & Sons, pp. 292

Saltelli et al. (2010)

Variance based sensitivity analysis of model output, Design and estimator for the total sensitivity index, Comp. Phys. Comm. 181, 259-270.

Sobol’ (1990)

Sensitivity estimates for nonlinear mathematical models, Matematicheskoe Modelirovanie 2, 112-118 (in Russian), translated in English in Sobol’ (1993).

Sobol’ (1993)

Sensitivity analysis for non-linear mathematical models, Mathematical Modelling and Computational Experiment 1, 407-414, English translation of Russian original paper Sobol’ (1990).

Current functions are:

Function

Description

B

B of Saltelli et al. (2010)

G / g

G-function attributed to Sobol’ (1990, 1993), given by Saltelli et al. (2008, 2010)

Gstar

G* of Saltelli et al. (2010)

ishigami_homma

Ishigami and Homma (1990), given by Saltelli et al. (2008, page 179)

K / bratley

K of Saltelli et al. (2010)

fmorris / morris

After Morris (1991)

oakley_ohagan

Oakley and O’Hagan (2004), parameters given in Saltelli et al. (2008) or on http://www.jeremy-oakley.staff.shef.ac.uk/psa_example.txt

linear

Linear test function \(Y = a*X + b\)

product

Product test function \(Y = X[0] * X[1]\)

ratio

Ration test function \(Y = X[0] / X[1]\)

ishigami_homma_easy

Simplified Ishigami and Homma function \(Y = sin(X[0]) + X[1]\)

This module was written by Matthias Cuntz & Juliane Mai while at Department of Computational Hydrosystems, Helmholtz Centre for Environmental Research - UFZ, Leipzig, Germany, and continued by Matthias Cuntz while at Institut National de Recherche pour l’Agriculture, l’Alimentation et l’Environnement (INRAE), Nancy, France.

copyright:

Copyright 2015-2022 Matthias Cuntz, Juliane Mai, see AUTHORS.rst for details.

license:

MIT License, see LICENSE for details.

Functions:

B(X)

B function

g(X, a)

G-function

G(X, a)

G-function

Gstar(X, alpha, delta, a)

G* example

K(X)

K example

bratley(*args)

K example

fmorris(X, beta0, beta1, beta2, beta3, beta4)

Morris-function

morris(*args)

Morris-function

oakley_ohagan(X)

Oakley and O'Hagan (2004)

ishigami_homma(X, a, b)

Ishigami and Homma (1990)

linear(X, a, b)

Linear test function

product(X)

Product test function

ratio(X)

Ratio test function

ishigami_homma_easy(X)

Simplified Ishigami and Homma function

History
  • Written Mar 2015 by Matthias Cuntz (mc (at) macu (dot) de) & Juliane Mai

  • Added functions to test PAWN method properly: linear, product, ratio, and ishigami_homma_easy, Dec 2017, Juliane Mai

  • Provide morris function under the name fmorris and the K function under the name bratley, Nov 2019, Matthias Cuntz

  • Changed to Sphinx docstring and numpydoc, Dec 2019, Matthias Cuntz

  • Distinguish iterable and array_like parameter types, Jan 2020, Matthias Cuntz

  • More consistent docstrings, Jan 2022, Matthias Cuntz

B(X)[source]#

B function

Saltelli et al. (2010) Comp. Phys. Comm. 181, p. 259-270

Parameters:

X (array_like) – (nX,) or (nX,npoints) array of floats

Returns:

B – float or (npoints,) floats of B function values at X

Return type:

float or ndarray

G(X, a)[source]#

G-function

Sobol’ (1990) Matematicheskoe Modelirovanie 2, 112-118 (in Russian)

Sobol’ (1993) Mathematical Modelling and Computational Experiment 1, 407-414 (English translation)

Parameters:
  • X (array_like) – (nX,) or (nX,npoints) array of floats

  • a (array_like) – (nX,) array of floats

Returns:

g – float or (npoints,) floats of G function values at X with parameters a

Return type:

float or ndarray

Gstar(X, alpha, delta, a)[source]#

G* example

Saltelli et al. (2010) Comp. Phys. Comm., 181, p. 259-270

Parameters:
  • X (array_like) – (nX,) or (nX,npoints) array of floats

  • alpha (array_like) – (nX,) array of floats

  • delta (array_like) – (nX,) array of floats

  • a (array_like) – (nX,) array of floats

Returns:

G* – float or (npoints,) floats of G* function values at X with parameters alpha, delta and a

Return type:

float or ndarray

K(X)[source]#

K example

Saltelli et al. (2010) Comp. Phys. Comm., 181, p. 259-270

Parameters:

X (array_like) – (nX,) or (nX,npoints) array of floats

Returns:

K – float or (npoints,) floats of K function values at X

Return type:

float or ndarray

bratley(*args)[source]#

K example

Saltelli et al. (2010) Comp. Phys. Comm., 181, p. 259-270

Parameters:

X (array_like) – (nX,) or (nX,npoints) array of floats

Returns:

bratley – float or (npoints,) floats of K function values at X

Return type:

float or ndarray

fmorris(X, beta0, beta1, beta2, beta3, beta4)[source]#

Morris-function

Morris (1991) Technometrics 33, 161-174

Parameters:
  • X (array_like) – (20,) or (20,npoints) array of floats

  • beta0 (float) – float

  • beta1 (array_like) – (20,) array of floats

  • beta2 (array_like) – (20,20) array of floats

  • beta3 (array_like) – (20,20,20) array of floats

  • beta4 (array_like) – (20,20,20,20) array of floats

Returns:

fmorris – float or (npoints,) floats of Morris function values at X with parameters beta0-beta4

Return type:

float or ndarray

g(X, a)[source]#

G-function

Sobol’ (1990) Matematicheskoe Modelirovanie 2, 112-118 (in Russian)

Sobol’ (1993) Mathematical Modelling and Computational Experiment 1, 407-414 (English translation)

Parameters:
  • X (array_like) – (nX,) or (nX,npoints) array of floats

  • a (array_like) – (nX,) array of floats

Returns:

G – float or (npoints,) floats of G function values at X with parameters a

Return type:

float or ndarray

ishigami_homma(X, a, b)[source]#

Ishigami and Homma (1990)

given by Saltelli et al. (2008, page 179)

Parameters:
  • X (array_like) – (3,) or (3,npoints) array of floats

  • a (array_like) – float or (npoints,) array of floats

  • b (array_like) – float or (npoints,) array of floats

Returns:

ishigami_homma – float or (npoints,) floats of Ishigami and Homma function values at X with parameters a and b

Return type:

float or ndarray

ishigami_homma_easy(X)[source]#

Simplified Ishigami and Homma function

\[Y = sin(X[0]) + X[1]\]

with X[0], X[1] ~ Uniform[-Pi, Pi]

Parameters:

X (array_like) – (2,) or (2,npoints) array of floats

Returns:

ishigami_homma_easy – float or (npoints,) floats of simplified Ishigami and Homma function values at X

Return type:

float or ndarray

linear(X, a, b)[source]#

Linear test function

\[Y = a*X + b\]
Parameters:
  • X (array_like) – (1,) or (1,npoints) array of floats

  • a (array_like) – float or (npoints,) array of floats

  • b (array_like) – float or (npoints,) array of floats

Returns:

linear – float or (npoints,) floats of linear function values at X with parameters a and b

Return type:

float or ndarray

morris(*args)[source]#

Morris-function

Morris (1991) Technometrics 33, 161-174

Parameters:
  • X (array_like) – (20,) or (20, npoints) array of floats

  • beta0 (float) – float

  • beta1 (array_like) – (20,) array of floats

  • beta2 (array_like) – (20, 20) array of floats

  • beta3 (array_like) – (20, 20, 20) array of floats

  • beta4 (array_like) – (20, 20, 20, 20) array of floats

Returns:

morris – float or (npoints,) floats of Morris function values at X with parameters beta0-beta4

Return type:

float or ndarray

oakley_ohagan(X)[source]#

Oakley and O’Hagan (2004)

    1. Statist. Soc. B 66, Part 3, 751-769

Parameters:

X (array_like) – (15,) or (15, npoints) array of floats

Returns:

oakley_ohagan – float or (npoints,) floats of Oakley and O’Hagan function values at X

Return type:

float or ndarray

product(X)[source]#

Product test function

\[Y = X[0] * X[1]\]
Parameters:

X (array_like) – (2,) or (2,npoints) array of floats

Returns:

product – float or (npoints,) floats of product function values at X

Return type:

float or ndarray

ratio(X)[source]#

Ratio test function

\[Y = X[0] / X[1]\]

Simple nonlinear model proposed by Liu et al. (2006):

Liu, H., Sudjianto, A., Chen, W., 2006. Relative entropy based method for probabilistic sensitivity analysis in engineering design. J. Mech. Des. 128, 326-336.

Used by Pianosi & Wagener, Environmental Modelling & Software (2015)

Pianosi, F. & Wagener T., 2015 A simple and efficient method for global sensitivity analysis based on cumulative distribution functions. Environmental Modelling & Software 67, 1-11.

Parameters:

X (array_like) – (2,) or (2,npoints) array of floats

Returns:

ratio – float or (npoints,) floats of ratio function values at X

Return type:

float or ndarray