Test Functions for Sensitivity Analysis#
The table below listed the available test functions typically used in the comparison of sensitivity analysis methods.
Name |
Input Dimension |
Constructor |
|---|---|---|
8 |
|
|
M |
|
|
M |
|
|
M |
|
|
M |
|
|
7 |
|
|
8 |
|
|
6 |
|
|
M |
|
|
M |
|
|
3 |
|
|
10 |
|
|
10 |
|
|
10 |
|
|
10 |
|
|
3 |
|
|
M |
|
|
6 / 20 |
|
|
7 / 20 |
|
|
3 |
|
|
M |
|
|
M |
|
|
M |
|
|
M |
|
|
5 |
|
|
9 |
|
|
20 |
|
|
10 |
|
In a Python terminal, you can list all the available functions relevant
for metamodeling applications using list_functions()
and filter the results using the tag parameter
(shown below in the HTML format):
import uqtestfuns as uqtf
uqtf.list_functions(tag="sensitivity", tablefmt="html")
| No. | Constructor | # Input | # Output | Param. | Description |
|---|---|---|---|---|---|
| 1 | Borehole() | 8 | 1 | False | Borehole function from Harper and Gupta (1983) |
| 2 | Bratley1992a() | M | 1 | False | Integration test function #1 from Bratley et al. (1992) |
| 3 | Bratley1992b() | M | 1 | False | Integration test function #2 from Bratley et al. (1992) |
| 4 | Bratley1992c() | M | 1 | False | Integration test function #3 from Bratley et al. (1992) |
| 5 | Bratley1992d() | M | 1 | False | Integration test function #4 from Bratley et al. (1992) |
| 6 | DampedOscillator() | 7 | 1 | False | Damped oscillator model from Igusa and Der Kiureghian (1985) |
| 7 | Flood() | 8 | 1 | False | Flood model from Iooss and Lemaître (2015) |
| 8 | Friedman6D() | 6 | 1 | False | Six-dimensional function from Friedman et al. (1983) |
| 9 | GenzCornerPeak() | M | 1 | True | Corner peak integrand from Genz (1984) |
| 10 | GenzDiscontinuous() | M | 1 | True | Discontinuous integrand from Genz (1984) |
| 11 | Ishigami() | 3 | 1 | True | Ishigami function from Ishigami and Homma (1991) |
| 12 | LinkletterDecCoeffs() | 10 | 1 | False | Linear function with decreasing coefficients (8 active inputs) from Linkletter et al. (2006) |
| 13 | LinkletterInert() | 10 | 1 | False | Inert function with 10 inactive inputs from Linkletter et al. (2006) |
| 14 | LinkletterLinear() | 10 | 1 | False | Linear function with 4 active inputs from Linkletter et al. (2006) |
| 15 | LinkletterSine() | 10 | 1 | False | Sine function with 2 active inputs from Linkletter et al. (2006) |
| 16 | Moon3D() | 3 | 1 | False | Three-dimensional function from Moon (2010) |
| 17 | Morris2006() | M | 1 | True | Test function from Morris et al. (2006) |
| 18 | OTLCircuit() | 6 | 1 | False | Output transformerless (OTL) circuit model from Ben-Ari and Steinberg (2007) |
| 19 | Piston() | 7 | 1 | False | Piston simulation model from Ben-Ari and Steinberg (2007) |
| 20 | Portfolio3D() | 3 | 1 | True | Simple portfolio model from Saltelli et al. (2004) |
| 21 | SaltelliLinear() | M | 1 | False | Linear function from Saltelli et al. (2000) |
| 22 | SobolG() | M | 1 | True | Sobol'-G function from Saltelli and Sobol' (1995) |
| 23 | SobolGStar() | M | 1 | True | Sobol'-G* function from Saltelli et al. (2010) |
| 24 | SobolLevitan() | M | 1 | True | Test function from Sobol' and Levitan (1999) |
| 25 | SolarCell() | 5 | 1 | True | Single-diode solar-cell model from Constantine et al. (2015) |
| 26 | Sulfur() | 9 | 1 | False | Sulfur model from Charlson et al. (1992) |
| 27 | Welch1992() | 20 | 1 | False | 20-Dimensional function from Welch et al. (1992) |
| 28 | WingWeight() | 10 | 1 | False | Wing weight model from Forrester et al. (2008) |
About sensitivity analysis#
Sensitivity analysis is a class of model inference techniques whose overarching aim is to understand the input-output relationship of a complex (perhaps, even a black-box) computational model. Within the uncertainty quantification (UQ) framework (see Uncertainty Quantification Framework), this aim is reframed as determining how the uncertainty of the model output(s) is affected by the uncertainty of the inputs.
While understanding the input-output relationship is valuable on its own[1], sensitivity analysis often focuses on more practical tasks, including:
Identifying of input variables that primarily drives the output uncertainty: This knowledge enables factor prioritization, where efforts are concentrated on reducing the uncertainty of the most influential inputs (if possible) to significantly decrease the uncertainty of the outputs
Identifying of non-influential input variables: This knowledge enables factor fixing/screening, where non-influential inputs are fixed to arbitrary value without affecting significantly (or at all) the uncertainty of the outputs. In essence, factor fixing reduces the dimensionality of the problem.
Sensitivity analysis within the UQ framework are typically carried out in a black-box manner, relying solely on model evaluations at carefully selected input points. The goal is then to achieve the aforementioned tasks with as few model evaluations as possible.
References#
Bertrand Iooss and Paul Lemaître. A review on global sensitivity analysis methods. In Uncertainty Management in Simulation-Optimization of Complex Systems, pages 101–122. Springer US, 2015. doi:10.1007/978-1-4899-7547-8_5.
Andrea Saltelli, Marco Ratto, Terry Andres, Francesca Campolongo, Jessica Cariboni, Debora Gatelli, Michaela Saisana, and Stefano Tarantola. Global sensitivity analysis. The primer. Wiley, 2007. ISBN 9780470725184. doi:10.1002/9780470725184.