How to do Sobol sensitivity analysis for existing datasets

I’ve extracted datasets from experiments and want to perform a sensitivity analysis using UQLab. However, I couldn’t find any documentation on how to directly apply sensitivity analysis to raw data. From what I’ve seen, UQLab typically requires defining a model (i.e., a function) and then evaluating that function to generate the necessary data.

Is there a way to perform sensitivity analysis in UQLab using existing datasets, without explicitly defining a function? Any advice or suggestions would be appreciated!

Dear @saeid_saberi,

You cannot directly apply Sobol’ sensitivity analysis to an existing dataset without an underlying model. However, you can construct a Polynomial Chaos Expansion (PCE) surrogate based on your experimental design and compute Sobol’ indices from the PCE (see PCE-based Sobol’ indices in the manual). This approach is especially handy when working with small datasets, as it typically gives better results than the MC-based approach.

Hope this helps!

Best regards,
Styfen

Dear Styfen,

Thank you for the information. Actually, I’ve used AI-based methods, but I’ll try PCE-based Sobol as well.

Best

Dear @saeid_saberi ,

The approach suggested by @styfen.schaer is perfectly fine and I would personnaly use this way. There are, however, other methods to do this. One of these is to use estimators based on rank statistics, see (Gamboa, Gremaud, Klein & Lagnoux, 2022). An example is provided at plot_sensitivity_rank_sobol.html.

Best regards,
Michaël

- Gamboa, F., Gremaud, P., Klein, T. & Lagnoux, A. Global sensitivity analysis: A novel generation of mighty estimators based on rank statistics Bernoulli 28(4): 2345-2374, 2022. pdf