damar-wicaksono / uqtestfuns

A Python3 library of test functions from the uncertainty quantification community with a common interface for validation and benchmarking purposes.
https://uqtestfuns.readthedocs.io/en/latest/
MIT License
8 stars 0 forks source link

Add the M-dimensional Sobol-G* function #285

Open damar-wicaksono opened 1 year ago

damar-wicaksono commented 1 year ago

The test function was used in the sensitivity analysis exercises in [^1] (see Eq. (33) in the Appendix).

The function reads as follows:

$$ \mathcal{M}(\boldsymbol{x}; \boldsymbol{a}, \boldsymbol{\delta}, \boldsymbol{\alpha}) = \prod_{i = 1}^M g_i^*(\boldsymbol{x}; \boldsymbol{a}, \boldsymbol{\delta}, \boldsymbol{\alpha}), $$

where

$$ g_i^*(\boldsymbol{x}; \boldsymbol{a}, \boldsymbol{\delta}, \boldsymbol{\alpha}) = \frac{(1 + \alpha_i) \lvert 2 (x_i + \delta_i - \lfloor x_i + \delta_i \rfloor) - 1 \rvert^{\alpha_i} + a_i}{1 + a_i} $$

The function appears in Saltelli et al. (2010)[^1] as an extension to a sensitivity analysis test function known as the Sobol'-G function by introducing parameters that allow the function to be shifted and curved. It appears as a test function in the context of sensitivity analysis; see, for instance, [^2].

Parameters

The original paper [^1] employed the function as a ten-dimensional function with the following choices of parameters:

  1. $\alpha_i = 1.0, i = 1, \ldots, 10$; $a_1 = 0$, $a_2 = 0$, $a3 = \ldots = a{10} = 9$
  2. $\alpha_i = 1.0, i = 1, \ldots, 10$; $\boldsymbol{a} = (0.0, 0.1, 0.2, 0.3, 0.4, 0.8, 1.0, 2.0, 3.0, 4.0)$
  3. $\alpha_i = 0.5, i = 1, \ldots, 10$; $a_1 = 0$, $a_2 = 0$, $a3 = \ldots = a{10} = 9$
  4. $\alpha_i = 0.5, i = 1, \ldots, 10$; $\boldsymbol{a} = (0.0, 0.1, 0.2, 0.3, 0.4, 0.8, 1.0, 2.0, 3.0, 4.0)$
  5. $\alpha_i = 2.0, i = 1, \ldots, 10$; $a_1 = 0$, $a_2 = 0$, $a3 = \ldots = a{10} = 9$
  6. $\alpha_i = 2.0, i = 1, \ldots, 10$; $\boldsymbol{a} = (0.0, 0.1, 0.2, 0.3, 0.4, 0.8, 1.0, 2.0, 3.0, 4.0)$

The parameter set 1 is considered easire than parameter set 2. Parameter sets 3 and 5 are the concave and convex versions of the parameter set 1, respectively. Accordingly, parameter sets 4 and 6 are the concave and convex version of the parameter set 2, respectively.

The $delta_i$'s parameter are randomly assigned for each realization of the function as the sensitivity indices do not depend on it.

[^1]: A. Saltelli, P. Annoni, I. Azzini, F. Campolongo, M. Ratto, and S. Tarantola, “Variance based sensitivity analysis of model output. Design and estimator for the total sensitivity index,” Computer Physics Communications, vol. 181, no. 2, pp. 259–270, Feb. 2010, doi: 10.1016/j.cpc.2009.09.018. [^2]: X. Sun, B. Croke, A. Jakeman, S. Roberts, "Benchmarking Active Subspace methods of global sensitivity analysis against variance-based Sobol’ and Morris methods with established test functions," Environmental Modelling & Software, vol. 149, p. 105310, 2022. DOI: 10.1016/j.envsoft.2022.105310