Difficulty to reach Kriging accuracy

Dear OT users,

I am working right now on a UQ workflow with a numerical model taking into inputs 19 uncertain variables and computing out 3 quantities of interest.

For the UQ analysis (sobol sensitivity, forward propagation, etc.) I construct a Kriging model.
The trouble is that for 2 of the QOIs, the validation of the surrogate (computed on an independent validation set of 60 points) is still very bad, even as I increase the size of the DOE.

For instance i attach here the figures of the qq plots for each QOI (Y0,Y1,Y2), considering a Kriging constructed on a DOE of 4000 points sampled with LHS, according to uniform distribution. Note that the Q2 scores are worst with smaller DOE sizes. It means that when I increase the size the of the DOE, the validation is getting better but it is very weak enhancement.

qqPlotKriging_qoi_0.pdf (196.7 KB)

qqPlotKriging_qoi_1.pdf (196.7 KB)

qqPlotKriging_qoi_2.pdf (196.8 KB)

Would you have any advice or tips to enhance the surrogate model accuracy with respect with the real model ? Or am I just stuck in the curse of dimensionality with so many inputs ?

An other question is about the Kriging algorithm complexity, it takes very long time to construct the Kriging with so much points, but I assume it is expected considering the size of the DOE.

Thanks by advance for your help in this topic, and I look forward to discuss these issues with the community.

Best regards,

Elie

hi,

It could be useful to set the scale parameters in the range of the data, for example if you have no other active parameters than scales parameters in your covariance model:

algo_fit = otexp.GaussianProcessFitter(X_train, Y_train, covariance_model, basis)
scaleOptimizationBounds = ot.Interval(0.1 * X_train.computeRange(), 4.0 * X_train.computeRange())
algo_fit.setOptimizationBounds(scaleOptimizationBounds)
algo_fit.run()`

otherwise we realized the hyperparameters optimization is much better performed in a normalized space, but for this to be available you will have to wait for version 1.26.

j