Learn R Programming

sensitivity (version 1.12.1)

sensiFdiv: 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, \dots)
## S3 method for class 'sensiFdiv':
print(x, \dots)
## 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.

Value

  • sensiFdiv returns a list of class "sensiFdiv", containing all the input arguments detailed before, plus the following components:
  • callthe matched call.
  • Xa data.frame containing the design of experiments.
  • ya vector of model responses.
  • Sthe 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.

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.

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

Run this code
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)

Run the code above in your browser using DataLab