SOBOL Sensitivity Analysis

The following example converts Parameter Study to perform a global variance-based sensitivity analysis following the method of Saltelli (2002).

Input File

To perform a the sensitivity analysis only two minor changes to the input file from Parameter Study need to occur: the sampler needs be changed and another statistics calculation object needs to be added, the remainder of the file remains the same. The exception being that the sampler name in a few of the objects was updated to use the "sobol" Sampler name, as defined in the following sub-section.

Sobol Sampler

The Sobol sampling scheme consists of using a sample and re-sample matrix to create a series of matrices that can be used to compute first-order, second-order, and total-effect sensitivity indices. The first-order indices are the portion of the variance in the quantity of interest (e.g., ) due to the variance of the uncertain parameters (e.g., ). The second-order indices are the portion of the variance in the quantity of interest due to the variance two uncertain parameters interacting (e.g., as ). Finally, the total-effect indices are the portion of the variance of the quantity of interest due to the variance of an uncertain parameter and all interactions with the other parameters. For complete details of the method please refer to Saltelli (2002).

The Sobol object requires two input samplers to form the sample and re-sample matrix. Thus, the Samplers block contains three sample objects. The first two are used by the third, the "sobol" sampler, which is the Sampler used by the other objects in the simulation.

[Samplers]
  [hypercube_a]
    type = LatinHypercube
    num_rows = 10000
    distributions = 'gamma q_0 T_0 s'
    seed = 2011
  []
  [hypercube_b]
    type = LatinHypercube
    num_rows = 10000
    distributions = 'gamma q_0 T_0 s'
    seed = 2013
  []
  [sobol]
    type = Sobol
    sampler_a = hypercube_a
    sampler_b = hypercube_b
  []
[]
(modules/stochastic_tools/examples/sobol/master.i)

The sobol method implemented here requires model evaluations, where is the number of uncertain parameters (4) and is the number of replicates (10,000). Therefore, for this example 100,000 model evaluations were performed to compute the indices.

Sobol Statistics

The values of the first-order, second-order, and total-effect are computed by the SobolStatistics object. This object is a VectorPostprocessor, as such it is added to the VectorPostprocessors block. The output of the object includes all the indices for each of the vectors supplied.

Results

If CSV output is enabled, the SobolStatistics object will write a file that contains columns of data. Each column comprises of the computed indices for the quantities of interest. For example, Listing 1 is the complete output from the SobolStatistics object for this example problem.

Listing 1: Computed Sobol indices for the example heat conduction problem.

results_results:T_avg,results_results:q_left
0.78281576441957,0.77757846638372
0.20244571666716,0.20835461645184
0.0028971365514415,0.001249518487784
0.00057637952893031,-7.7803918689059e-06
0.7962125505073,0.79310223868474
0.22205277595128,0.23142827171255
0.0078278880010163,0.0074376466338467
0.0057602099050202,0.0064422786852175
0.0013657906960507,0.0023676473484507
-0.026286609856123,-0.028546434327499
-0.027093927368103,-0.0288934212785
-0.0038658094816267,-0.0039973359755034
-0.0034417727808675,-0.0036586486293979
-2.439285675197e-05,2.2538777552327e-05

This problem examines four uncertain parameters, thus the first four rows contain the first-order indices of each of the uncertain parameters as ordered in the input file (, , , and ). The next four rows contain the total-effect indices. The final rows contain the second-order indices, see SobolStatistics for further information regarding the output.

For the problem at hand, the first-order and second-order indices for the two quantities of interest are presented in Table 1 and Table 2. The diagonal entries are the first-order incides and the off-diagonal terms are the second-order indices. For example for the first order-index for is and the second-order index for interacting with . The negative values are essentially zero, if more replicates were executed these numbers would become closer to zero.

Table 1: First-order and second-order Sobol indices for .

1 ()2 ()3 ()4 ()
10.783---
20.0140.202--
3-0.026-0.0040.003-
4-0.027-0.00300.001

Table 2: First-order and second-order Sobol indices for .

1 ()2 ()3 ()4 ()
10.778---
20.0020.215--
3-0.029-0.0040.001-
4-0.029-0.00400

The data in these two tables clearly indicates that a majority of the variance of both quantities of interest are due to the variance of () and (). Additionally, a small contribution of the variance is from a second-order interaction, , between and . The importance of and if further evident by the total-effect indices, as shown in Table 3.

Table 3: Total-effect Sobol indices for and .

1 ()2 ()3 ()4 ()
0.7960.2220.0080.006
0.7930.2310.0070.006

References

  1. Andrea Saltelli. Making best use of model evaluations to compute sensitivity indices. Computer Physics Communications, 145(2):280–297, 2002. URL: https://doi.org/10.1016/S0010-4655(02)00280-1.[BibTeX]