sobolrank
implements the estimation of all first-order indices using only N model evaluations
via ranking following Gamboa et al. (2020) and inspired by Chatterjee (2019).
sobolrank(model = NULL, X, nboot = 0, conf = 0.95, nsample = round(0.8*nrow(X)),
...)
# S3 method for sobolrank
tell(x, y = NULL, ...)
# S3 method for sobolrank
print(x, ...)
# S3 method for sobolrank
plot(x, ylim = c(0, 1), ...)
# S3 method for sobolrank
ggplot(data, mapping = aes(), ..., environment
= parent.frame(), ylim = c(0, 1))
sobolrank
returns a list of class "sobolrank"
, containing all
the input arguments detailed before, plus the following components:
the matched call.
a data.frame
containing the design of experiments.
a vector of model responses.
the estimations of the Sobol' sensitivity indices.
a function, or a model with a predict
method,
defining the model to analyze.
a random sample of the inputs.
the number of bootstrap replicates, see details.
the confidence level for confidence intervals, see details.
the size of the bootstrap sample, see details.
a list of class "sobolrank"
storing the state of the
sensitivity study (parameters, data, estimates).
a list of class "sobolrank"
storing the state of the
sensitivity study (parameters, data, estimates).
a vector of model responses.
y-coordinate plotting limits.
Default list of aesthetic mappings to use for plot. If not specified, must be supplied in each layer added to the plot.
[Deprecated] Used prior to tidy evaluation.
any other arguments for model
which are passed
unchanged each time it is called.
Sebastien Da Veiga
The estimator used by sobolrank is defined in Gamboa et al. (2020).
It is based on ranking the inputs as was first proposed by Chatterjee (2019) for a Cramer-Von Mises based estimator.
All first-order indices can be estimated with a single sample of size N.
Since boostrap creates ties which are not accounted for in the algorithm, confidence intervals are obtained by
sampling without replacement with a sample size nsample
.
Gamboa, F., Gremaud, P., Klein, T., & Lagnoux, A., 2022, Global Sensitivity Analysis: a novel generation of mighty estimators based on rank statistics, Bernoulli 28: 2345-2374.
Chatterjee, S., 2021, A new coefficient of correlation, Journal of the American Statistical Association, 116:2009-2022.
sobol, sobol2002, sobolSalt, sobol2007, soboljansen, sobolmartinez,
sobolSmthSpl, sobolEff, sobolshap_knn
# Test case : the non-monotonic Sobol g-function
# Example with a call to a numerical model
library(boot)
n <- 1000
X <- data.frame(matrix(runif(8 * n), nrow = n))
x <- sobolrank(model = sobol.fun, X = X, nboot = 100)
print(x)
library(ggplot2)
ggplot(x)
# Test case : the Ishigami function
# Example with given data
n <- 500
X <- data.frame(matrix(-pi+2*pi*runif(3 * n), nrow = n))
Y <- ishigami.fun(X)
x <- sobolrank(model = NULL, X)
tell(x,Y)
print(x)
ggplot(x)
Run the code above in your browser using DataLab