Understanding the confidence interval of Sobol indices

Hello,

The documentation around the confidence level of Sobol indices is a bit sparse. Could someone explain how the following works in GlobalSensitivity:

  • The role of nboot
  • The role of setting conf_level
  • How to retrieve the confidence level, and the format in which is is returned

Thank you

Sobol Method · GlobalSensitivity.jl should help you for the role of the arguments.

GlobalSensitivity.jl/sobol_method.jl at master · SciML/GlobalSensitivity.jl · GitHub shows how you can get the confidence intervals

This doesn’t mention what a bootstrap run does however. Similarly, how does changing the confidence level change anything? Will the number of samples run be changed by the program as a function of this?

Also docs suggest nboot>0 for confidence interval calculation but if nboot=1 then confidence interval objects are nothing.

The sobol_method.jl was helpful thank you. To clarify my understanding sobol.ST_Conf_Int will return a matrix where each row is a confidence number and each column is a variable passed? So:

                           variable 1 variable 2
lower conf level
upper conf level

Bootstrap is Bootstrapping (statistics) - Wikipedia

Similarly, how does changing the confidence level change anything

That changes only the level (pretty well explained in Confidence interval - Wikipedia just in case you are not familiar) and not the number of samples, nboot changes the number of samples

. To clarify my understanding sobol.ST_Conf_Int will return a matrix where each row is a confidence number and each column is a variable passed

EDIT: Sorry I misread this before.

No, the way the results are reported for first and total order indices’ CI is

 param1 param2 param3 .. ... ...

u1
u2

with each cell being the error for that parameter (the columns)'s sensitivity index for the observed variable (row). So that’s why you have a 4*12 matrix for 4 observed variables and 12 parameters. To get the CIs for the indices you’d do S1[I,j] - S1_Conf_Int[I,j] and S1[I,j] + S1_Conf_Int[I,j] (or through broadcasting)

@Vaibhavdixit02 why does the confidence interval matrix have four rows for each variable? nboot=5

sobol_result.ST_Conf_Int = [
0.002140303660231213 0.001374899485938175 0.0007512253392035508 0.0 0.0 0.0 0.0 0.0 0.0 0.0019364005560527171 0.0015194976539914867 0.0; 
3.987682697901888e-7 0.020335209666973064 0.03977866519800592 0.0 0.0 0.0 0.0 0.0 0.0 1.610099093745705e-5 6.116174091283797e-7 0.0; 
0.0012173805419186411 0.0015130579222676734 0.004489237720529398 0.0 0.0 0.0 0.0 0.0 0.0 0.00015165970084130953 0.001567894681151645 0.0; 
0.0020468867516150084 2.2522540774355426e-5 0.003862861549576147 0.0 0.0 0.0 0.0 0.0 0.0 0.0007652690162809823 0.003977774483835621 0.0]


sobol_result.S1_Conf_Int = [
0.0021595131379424856 0.000518177371997443 0.00010912421052301298 0.0 0.0 0.0 0.0 0.0 0.0 0.001138612347448014 0.0002745154899587079 0.0; 
1.2733062154870762e-17 0.04511870593914688 1.8830925047775132e-17 0.0 0.0 0.0 0.0 0.0 0.0 3.319205919341837e-22 1.6983075940831996e-16 0.0; 
0.0002551911399908023 0.0009281213495466689 0.00013657384425105572 0.0 0.0 0.0 0.0 0.0 0.0 8.425524493092775e-5 0.004062292604195716 0.0; 
0.000757001254193339 2.152668319282848e-5 0.0004343449416748147 0.0 0.0 0.0 0.0 0.0 0.0 4.169105270114894e-8 0.004395152000136753 0.0]