R: Sensitivity Indices based on Csiszar f-divergence
sensiFdiv
R Documentation
Sensitivity Indices based on Csiszar f-divergence
Description
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.
Usage
sensiFdiv(model = NULL, X, fdiv = "TV", nboot = 0, conf = 0.95, ...)
## S3 method for class 'sensiFdiv'
tell(x, y = NULL, ...)
## S3 method for class 'sensiFdiv'
print(x, ...)
## S3 method for class 'sensiFdiv'
plot(x, ylim = c(0, 1), ...)
Arguments
model
a function, or a model with a predict method,
defining the model to analyze.
X
a matrix or data.frame representing the input random sample.
fdiv
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).
nboot
the number of bootstrap replicates
conf
the confidence level for confidence intervals.
x
a list of class "sensiFdiv" storing the state of the
sensitivity study (parameters, data, estimates).
y
a vector of model responses.
ylim
y-coordinate plotting limits.
...
any other arguments for model which are passed
unchanged each time it is called.
Details
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 (2014) for details.
Value
sensiFdiv returns a list of class "sensiFdiv", containing all
the input arguments detailed before, plus the following components:
call
the matched call.
X
a data.frame containing the design of experiments.
y
a vector of model responses.
S
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.
Author(s)
Sebastien Da Veiga, Snecma
References
Borgonovo E. (2007), A new uncertainty importance measure,
Reliability Engineering and System Safety 92(6), 771–784.
Da Veiga S. (2014), Global sensitivity analysis with dependence measures,
Journal of Statistical Computation and Simulation, in press.
http://hal.archives-ouvertes.fr/hal-00903283
Krzykacz-Hausmann B. (2001), Epistemic sensitivity analysis based on the
concept of entropy, Proceedings of SAMO2001, 53–57.
See Also
kde, sensiHSIC
Examples
## 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)
## End(Not run)