Main Content

postFitStatistics

Compute post-fit statistics for the exact Gaussian process regression model

Syntax

loores = postFitStatistics(gprMdl)
[loores,neff] = postFitStatistics(gprMdl)

Description

loores = postFitStatistics(gprMdl) returns the leave-one-out residuals, loores, for the trained Gaussian process regression (GPR) model.

[loores,neff] = postFitStatistics(gprMdl) also returns the number of effective parameters, neff.

Input Arguments

expand all

Gaussian process regression model, specified as a RegressionGP object.

Output Arguments

expand all

Leave-one-out residuals, returned as an n-by-1 matrix, where n is the number of observations in the training data.

Number of effective parameters, returned as an n-by-1 matrix, where n is the number of observations in the training data.

Examples

expand all

Generate sample data.

rng(0,'twister'); % For reproducibility
n = 1500;
x = linspace(-10,10,n)';
y = sin(3*x).*cos(3*x) + sin(2*x).*cos(2*x) + sin(x) + cos(x) + 0.2*randn(n,1);

Fit a GPR model using the exact method for fitting and prediction.

gprMdl = fitrgp(x,y,'Basis','linear','FitMethod','exact',...
'PredictMethod','exact','KernelFunction','matern52');

Compute the leave-one-out residuals and the effective number of parameters in the trained model.

[loores,neff] = postFitStatistics(gprMdl);

Predict the responses using the trained model.

ypred = resubPredict(gprMdl);

Plot the true and predicted responses, and display effective number of parameters in the fit.

figure()
plot(x,y,'r.');
hold on;
plot(x,ypred,'b'); 
xlabel('x');
ylabel('y');
legend('Data','GPR prediction','Location','Best');
title(['Effective number of parameters = ',num2str(neff)]);
hold off

Figure contains an axes object. The axes object with title Effective number of parameters = 94.7514, xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, GPR prediction.

Plot leave-one-out residuals.

figure()
plot(x,loores,'r.-');
xlabel('x');
ylabel('leave-one-out residuals');

Figure contains an axes object. The axes object with xlabel x, ylabel leave-one-out residuals contains an object of type line.

Tips

  • You can only compute the post-fit statistics when PredictMethod is 'exact'.

  • If FitMethod is 'exact', then postFitStatistics accounts for the fact that the fixed basis function coefficients are estimated from the data.

  • If FitMethod is different than 'exact', then postFitStatistics treats the fixed basis function coefficients as known.

  • For all PredictMethod and FitMethod options, postFitStatistics treats the estimated kernel parameters and noise standard deviation as known.

Version History

Introduced in R2015b