How to estimate 95% confidence band on GPR model prediction

15 Ansichten (letzte 30 Tage)
I created a compact GPR model using the Regression Learner app. The model is in a structure which I have used to predict the estimates for a new set of data using: yfit = GPRnewOOS.predictFcn(x_test); where GPRnewOOS is the name of created GPR model, x_test is a set of measurements with large number of predictors, and yfit is output of the model for each measurement.
This works just fine, and I do get predictions of teh function in the array yfit. But I also need to get 95% confidence interval for the estimated yfit values.
According to Matlab literature I have to use predict function as: [ypred,ysd,yint] = predict(GPRnewOOS,x_test)
but when I do that I get an error (see attached screenshot). What am I doing wrong?

Akzeptierte Antwort

Cathy Chen
Cathy Chen am 10 Aug. 2021
%% test model
[pred,~,ci] = M5_5.predictFcn(ValiD);
plot(pred,'color','m','DisplayName','Prediction');
hold on
plot(Capa40,'color','k','DisplayName','Real');
hold on
plot(ci(:,1),'c--','DisplayName','Lower 95% Limit');
hold on
plot(ci(:,2),'blue--','DisplayName','Lower 95% Limit');
legend;
  1 Kommentar
MAYANK DHYANI
MAYANK DHYANI am 26 Aug. 2021
Thank you @Cathy Chen! I had been struggling to use the trained model to generate the confidence interval until I came across your code.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Karun Mathiazhagan
Karun Mathiazhagan am 26 Mai 2019
Hello Vahe,
The "predict" method which you are trying to use belongs to the "RegressionGP" object stored within the structure that is exported from the Regression Learner app and not the structure itself. Please feel free to use "predict" on this object, once you have extracted it from the structure which is exported from the app. To do this, you should be able to use the command "GPRnewOOS.RegressionGP". This would store the resultant "RegressionGP" object in "ans".
I hope this helps.
Best,
Karun
  1 Kommentar
Vahe Ghazikhanian
Vahe Ghazikhanian am 29 Mai 2019
Hello Karun, I tried your suggestion by typing:
>> [y_IS,yci_IS] = predict(GPRnewOOS.RegressionGP,xx_IN);
and got the error:
screenshot.jpg
The xx_IN is a matrix of 711 x 398 [711 variables each measured 398 times], and the model was created with the Regression learner app with the same number of input variable (e.g., 711 x 1376).
The only thing I can think of with 5 component is the fact that I had the PCA feature selection set to 5, and that is reflected in the model structure which shows there are "PCACcoefficients 711x5".
It seems that the "predict" function requires PCA to be applied to the input matrix before it can be evaluated?
Do you know if one can do this another way? A simple code might be helpful.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by