sensitivity (version 1.16.2)

sobolmara: Monte Carlo Estimation of Sobol' Indices via matrix permutations

Description

sobolmara implements the Monte Carlo estimation of the first-order Sobol' sensitivity indices using the formula of Mara and Joseph (2008), called the Mara estimator. This method allows the estimation of all first-order p indices at a cost of 2N model calls (the random sample size), then independently of p (the number of inputs).

Usage

sobolmara(model = NULL, X1, …)
# S3 method for sobolmara
tell(x, y = NULL, return.var = NULL, …)
# S3 method for sobolmara
print(x, …)
# S3 method for sobolmara
plot(x, ylim = c(0, 1), …)
# S3 method for sobolmara
ggplot(x, ylim = c(0, 1), …)

Arguments

model

a function, or a model with a predict method, defining the model to analyze.

X1

the random sample.

x

a list of class "sobolEff" storing the state of the sensitivity study (parameters, data, estimates).

y

a vector of model responses.

return.var

a vector of character strings giving further internal variables names to store in the output object x.

ylim

y-coordinate plotting limits.

any other arguments for model which are passed unchanged each time it is called.

Value

sobolmara returns a list of class "sobolmara", 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 Sobol' sensitivity indices.

Details

The estimator used by sobolmara is based on rearragement of a unique matrix via random permutations (see Mara and Joseph, 2008). Bootstrap confidence intervals are not available.

References

Mara, T. and Joseph, O.R. (2008), Comparison of some efficient methods to evaluate the main effect of computer model factors, Journal of Statistical Computation and Simulation, 78:167--178

See Also

sobolroalhs, sobol, sobolMultOut

Examples

Run this code
# NOT RUN {
# Test case : the non-monotonic Sobol g-function

# The method of sobolmara requires 1 sample
# (there are 8 factors, all following the uniform distribution on [0,1])
n <- 1000
X1 <- data.frame(matrix(runif(8 * n), nrow = n))

# sensitivity analysis
x <- sobolmara(model = sobol.fun, X1 = X1)
print(x)
plot(x)

library(ggplot2)
ggplot(x)
# }

Run the code above in your browser using DataCamp Workspace