Delta Moment-Independent Method
GlobalSensitivity.DeltaMoment — Type
DeltaMoment(; nboot = 500, conf_level = 0.95, Ygrid_length = 2048,
num_classes = nothing)Keywords
nboot::Int = 500: number of bootstrap repetitions.conf_level::Real = 0.95: confidence level for bootstrap intervals.Ygrid_length::Int = 2048: number of quadrature points used by kernel-density estimation and integration. A power of two is efficient for FFT calculations.num_classes = nothing: number of classes used to form conditional output distributions.nothingselects the implementation default.
Method Details
The Delta moment-independent method relies on new estimators for density-based statistics. It allows for the estimation of both distribution-based sensitivity measures and of sensitivity measures that look at contributions to a specific moment. One of the primary advantage of this method is the independence of computation cost from the number of parameters.
API
gsa(f, method::DeltaMoment, p_range; samples, batch = false,
rng::AbstractRNG = Random.default_rng())
gsa(X, Y, method::DeltaMoment; rng::AbstractRNG = Random.default_rng())Example
using GlobalSensitivity, Test
function ishi(X)
A= 7
B= 0.1
sin(X[1]) + A*sin(X[2])^2+ B*X[3]^4 *sin(X[1])
end
lb = -ones(3)*π
ub = ones(3)*π
m = gsa(ishi,DeltaMoment(),fill([lb[1], ub[1]], 3), samples=1000)
samples = 1000
X = QuasiMonteCarlo.sample(samples, lb, ub, QuasiMonteCarlo.SobolSample())
Y = ishi.(@view X[:, i] for i in 1:samples)
m = gsa(X, Y, DeltaMoment())