sensiFdiv
conducts a density-based sensitivity
analysis where the impact of an input variable is defined
in terms of dissimilarity between the original output density function
and the output density function when the input variable is fixed.
The dissimilarity between density functions is measured with Csiszar f-divergences.
Estimation is performed through kernel density estimation and
the function kde
of the package ks
.
sensiFdiv(model = NULL, X, fdiv = "TV", nboot = 0, conf = 0.95, ...)
# S3 method for sensiFdiv
tell(x, y = NULL, …)
# S3 method for sensiFdiv
print(x, …)
# S3 method for sensiFdiv
plot(x, ylim = c(0, 1), …)
# S3 method for sensiFdiv
ggplot(x, ylim = c(0, 1), …)
a function, or a model with a predict
method,
defining the model to analyze.
a matrix or data.frame
representing the input random sample.
a string or a list of strings specifying the Csiszar f-divergence to be used. Available choices are "TV" (Total-Variation), "KL" (Kullback-Leibler), "Hellinger" and "Chi2" (Neyman chi-squared).
the number of bootstrap replicates
the confidence level for confidence intervals.
a list of class "sensiFdiv"
storing the state of the
sensitivity study (parameters, data, estimates).
a vector of model responses.
y-coordinate plotting limits.
any other arguments for model
which are passed
unchanged each time it is called.
sensiFdiv
returns a list of class "sensiFdiv"
, 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 Csiszar f-divergence sensitivity indices. If several divergences have been selected, Sis a list where each element encompasses the estimations of the sensitivity indices for one of the divergence.
Some of the Csiszar f-divergences produce sensitivity indices that have already been studied in the context of sensitivity analysis. In particular, "TV" leads to the importance measure proposed by Borgonovo (2007) (up to a constant), "KL" corresponds to the mutual information (Krzykacz-Hausmann 2001) and "Chi2" produces the squared-loss mutual information. See Da Veiga (2015) for details.
Borgonovo E. (2007), A new uncertainty importance measure, Reliability Engineering and System Safety 92(6), 771--784.
Da Veiga S. (2015), Global sensitivity analysis with dependence measures, Journal of Statistical Computation and Simulation, 85(7), 1283--1305.
Krzykacz-Hausmann B. (2001), Epistemic sensitivity analysis based on the concept of entropy, Proceedings of SAMO2001, 53--57.
# NOT RUN {
library(ks)
# Test case : the non-monotonic Sobol g-function
n <- 100
X <- data.frame(matrix(runif(8 * n), nrow = n))
# Density-based sensitivity analysis
x <- sensiFdiv(model = sobol.fun, X = X, fdiv = c("TV","KL"), nboot=30)
print(x)
library(ggplot2)
ggplot(x)
# }
Run the code above in your browser using DataLab