metafunction {sensobol} | R Documentation |
Random metafunction based on Becker (2020)'s metafunction.
Description
Random metafunction based on Becker (2020)'s metafunction.
Usage
metafunction(data, k_2 = 0.5, k_3 = 0.2, epsilon = NULL)
Arguments
data |
A numeric matrix where each column is a model input and each row a sampling point. |
k_2 |
Numeric value indicating the fraction of active pairwise interactions (between 0 and 1).
Default is |
k_3 |
Numeric value indicating the fraction of active three-wise interactions
(between 0 and 1). Default is |
epsilon |
Integer value. It fixes the seed for the random number generator.
The default is |
Details
The metafunction randomly combines the following functions in a metafunction of dimension :
-
(cubic).
-
(discontinuous).
-
(exponential).
-
(inverse).
-
(linear)
-
(no effect).
-
(non-monotonic).
-
(periodic).
-
(quadratic).
-
(trigonometric).
It is constructed as follows:
where is the model dimensionality,
is a
-length vector formed by randomly
sampling with replacement the ten functions mentioned above,
and
are two matrices specifying the
number of pairwise and three-wise interactions given the model dimensionality,
and
are three
vectors of length
generated by sampling from a mixture of two normal distributions
.
See Puy et al. (2020) and Becker (2020) for a full
mathematical description of the metafunction approach.
Value
A numeric vector with the function output.
References
Becker W (2020).
“Metafunctions for benchmarking in sensitivity analysis.”
Reliability Engineering and System Safety, 204, 107189.
doi:10.1016/j.ress.2020.107189.
Puy A, Becker W, Piano SL, Saltelli A (2020).
“The battle of total-order sensitivity estimators.”
arXiv.
2009.01147, https://arxiv.org/abs/2009.01147.
Examples
# Define settings (number of model inputs = 86)
N <- 100; params <- paste("X", 1:86, sep = "")
# Create sample matrix
mat <- sobol_matrices(N = N, params = params)
# Compute metafunction
Y <- metafunction(mat)