![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/188448/image.jpeg)
How to get R^2 of a 5th order polyfit?
51 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I need to find how poorly the 5th order fit is for:
[p,S] = polyfit(x,y0,5);
yp = polyval(p,x);
An R^2 would be perfect, but I can not understand the answers I'm finding. I don't think I want correlations.
R^2.
Thanks!
0 commentaires
Réponses (1)
John D'Errico
le 13 Mai 2018
Modifié(e) : John D'Errico
le 13 Mai 2018
polyfit does not return an R^2. A good idea, because IMHO, R^2 is of little value in determining if the fit is good. Does the fit look good? If not, then who cares what R^2 tells you? And if the fit looks like crap, then again, do you need R^2? Reliance on a single number is a bad idea. But people demand it.
x = linspace(0,1,50);
y = exp(x) + randn(size(x))/100;
P5 = polyfitn(x,y,5)
P5 =
struct with fields:
ModelTerms: [6×1 double]
Coefficients: [-0.34052 0.37377 0.44485 0.11449 1.1189 0.99134]
ParameterVar: [1.223 7.7232 6.3053 0.95902 0.023737 5.4246e-05]
ParameterStd: [1.1059 2.7791 2.511 0.97929 0.15407 0.0073652]
DoF: 44
p: [0.7596 0.89362 0.8602 0.90746 4.7259e-09 3.4139e-59]
R2: 0.99963
AdjustedR2: 0.99959
RMSE: 0.0096032
VarNames: {'X1'}
P5.R2
ans =
0.99963
plot(x,y,'ro',x,polyvaln(P5,x),'b-')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/188448/image.jpeg)
If you have the curve fitting toolbox, this would have worked as well:
[mdl,stuff] = fit(x',y','poly5')
mdl =
Linear model Poly5:
mdl(x) = p1*x^5 + p2*x^4 + p3*x^3 + p4*x^2 + p5*x + p6
Coefficients (with 95% confidence bounds):
p1 = -0.3405 (-2.569, 1.888)
p2 = 0.3738 (-5.227, 5.975)
p3 = 0.4448 (-4.616, 5.506)
p4 = 0.1145 (-1.859, 2.088)
p5 = 1.119 (0.8084, 1.429)
p6 = 0.9913 (0.9765, 1.006)
stuff =
struct with fields:
sse: 0.0046111
rsquare: 0.99963
dfe: 44
adjrsquare: 0.99959
rmse: 0.010237
Finally, with a little more effort, you could have used the stats toolbox. You would need to do a bit more to use regress and regstats however. But you would get more complete information about the model then too.
Voir également
Catégories
En savoir plus sur Get Started with Curve Fitting Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!