PCE with BCS to get Sobol sensitivity #13
-
Hello, I am new to UQTk. I am now trying to perform sensitivity analysis with PCE method. The dimension of factors is up to 50. I can not evaluate samples with size more than the full expansion count of all PC terms, since it is expensive to simulate them. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hi @eclipseyin147 , indeed, the scenario you outline is a very common use case for us. As you suggested, if we can not afford to take a lot of samples, we often use BCS to get a PCE that captures the main features in the signal. Once you get that PCE, you can get the Sobol' indices directly from the PCE coefficients either with the app pce_sens or with the function UQTkGSA in https://github.com/sandialabs/UQTk/blob/master/PyUQTk/PyPCE/pce_tools.py Let me know if you have any further questions or would like an example. |
Beta Was this translation helpful? Give feedback.
BCS is very powerful, but it also has a lot of hyperparameters that affect the quality of the approximation. Take look at https://github.com/sandialabs/UQTk/blob/master/examples/surrogate_genz/surrogate_genz-BCS.ipynb and https://github.com/sandialabs/UQTk/blob/master/examples/surrogate_genz/surrogate_genz-BCS_detailed.ipynb for some examples. At the very least, you want to try a range of eta values and determine which one minimizes the testing error. Also look at parity plots (predicted vs. true test data) to verify that the surrogate is in the ballpark. If the surrogate is no good, then the Sobol' indices will be off too.