Sensitivity Analysis from Kriging and PCE-Kriging

I understood that from PCE method and using the coefficients found, we can directly obtain the sensitivity indices using the Sobol’ method of sensitivity analysis.
Is there any way that we could do the same via the Kriging or PCE-Kriging metamodels based? And how can you do that?
I didn’t seem to find these topics in the manual similar to the PCE method and I hope I am not wrong with my understanding about these metamodels.
Thank you for your help!

Hi Visha,
No, there is no analytical formula for Sobol’ indices in the case of Kriging or PC-Kriging. But you can compute the Sobol’ indices simply by Monte Carlo estimation (see Section of the Sensitivity Analysis user manual).

Hi Nora,
Thanks a lot! So its not only Sobol, but can we actually perform any sensitivity analysis methods on the metamodel built from Kriging or PC-Kriging based? Thats what I was trying to understand since as mentioned metamodel allows sensitivity analysis so I was thinking how these works for these metamodels. My understanding on these methods are quite new hence why I’ve asked.
I have successfully implemented MCS and PCE based sobol indices on my model. So, I just wanted to know what about these other metamodelling techniques.

Exactly. You can use your newly created metamodel for performing any kind of UQ analysis (and in particular, any sensitivity analysis), since it is just another model! You can see it in the workspace of your Matlab editor e.g. when you run the example uq_Example_Sensitivity_03_HighDimensionalSobol: both myModel and myPCE are of the type uq_model.

Hi Nora,

While performing the analysis, I have more doubts to clear if you can help me out with that. The issue is more about the computational cost for these sensitivity analysis evaluations.

From what I have been working on in UQlab using these metamodels and SA modules and with your inputs, my conclusions are;

  1. In order to evaluate complex model with lower computational cost, I can only perform PCE or LRA based metamodel techniques and post process the coefficients in order to get the Sobol indices for the sensitivity part since via a simple Monte Carlo, we need to run at almost 1e4 sample size to obtain the similar results for Sobol indices. If it is not Sobol, even if we perform other sensitivity analysis methodology using the metamodels, then the computational cost is high for the ones that requires sample size isn’t it in order to obtain better result except for e.g. perturbation method?

  2. Also, via PCE metamodel, I can actually run ANCOVA sensitivity analysis method and still obtain the uncorrelated sensitivity (this is for model without dependent variables) without increasing the computational cost. Since, the ANCOVA method is based on building PCE metamodel first?

  3. Because based on your inputs, if I have the metamodels, such as the PCE-Kriging and Kriging models, the computational cost is low for obtaining the statistical moments for the quantity of interest, but when I need to perform the sensitivity analysis methods, then I have to use Monte carlo estimator for the Sobol indices which the computational cost can be expensive isn’t it? And it is the same for other sensitivity analysis methods.

Thanks for clarifying my questions and understanding about these topics!

Best regards,

Hi Nora,
Can you tell me if what I did here is correct. I implemented the Kriging metamodel and seems to work. So, I can see in the workspace the metamodel: myKriging and after I included the code for Sobol indices computation as below:

SobolOpts.Type = ‘Sensitivity’;
SobolOpts.Method = ‘Sobol’;

% Specify the maximum order of the Sobol’ indices to be calculated:
SobolOpts.Sobol.Order = 1;

% Specify the sample size for the MC simulation:
SobolOpts.Sobol.SampleSize = 1e4;

% Run the sensitivity analysis:
mySobolAnalysisKriging = uq_createAnalysis(SobolOpts);

% Retrieve the analysis results for comparison:
mySobolResultsKriging = mySobolAnalysisKriging.Results;


Is this Sobol sensitivity applied on the metamodel Kriging based which I have computed? I did get the Sobol results super quick. So, is this the correct way to implement them?
Look forward to your response on this subject.
Thank you so much for your help!

Best regards,