How to calculate the standard error estimation when using fit from curve fitting toolbox?

133 次查看(过去 30 天)
Is is possible to calculate the standard error estimation when using fit from curve fitting toolbox as in polyfit?
Suppose I have 2 vector (x, y). Using polyfit and polyval gives the standard error estimation for all predictions.
How to calculate delta in fit? I need the prediction interval like examples below.
I assume the delta in polyval is not a scalar but varies with x. (Purhaps it is not?)
Example from the documention,
x = 1:100;
y = -0.3*x + 2*randn(1,100);
[p,S] = polyfit(x,y,1);
[y_fit,delta] = polyval(p,x,S);
plot(x,y,'bo')
hold on
plot(x,y_fit,'r-')
plot(x,y_fit+2*delta,'m--',x,y_fit-2*delta,'m--')
title('Linear Fit of Data with 95% Prediction Interval')
legend('Data','Linear Fit','95% Prediction Interval')

采纳的回答

Star Strider
Star Strider 2021-7-22
Yes. Use the predint function.
x = linspace(0, 100, 100);
y = -0.3*x + 2*randn(1,100);
[f,gof,out] = fit(x(:), y(:), 'poly1')
f =
Linear model Poly1: f(x) = p1*x + p2 Coefficients (with 95% confidence bounds): p1 = -0.2946 (-0.3081, -0.2811) p2 = -0.5298 (-1.311, 0.251)
gof = struct with fields:
sse: 384.9559 rsquare: 0.9504 dfe: 98 adjrsquare: 0.9499 rmse: 1.9819
out = struct with fields:
numobs: 100 numparam: 2 residuals: [100×1 double] Jacobian: [100×2 double] exitflag: 1 algorithm: 'QR factorization and solve' iterations: 1
ci = predint(f, x);
figure
plot(f, x, y)
hold on
plot(x, ci, '--')
hold off
grid
hl = legend;
hl.String{3} = 'Lower 95% CI';
hl.String{4} = 'Upper 95% CI';
.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by