regress函數(shù)的最小二乘算法原理

得到一組數(shù)據(jù)時:

比如

產(chǎn)量 13.2 15.1 16.4 17.1 17.9 18.7 19.6 21.2 22.5 24.3

溫度 ? 20 ? ?25 ? 30 ? 35 ? ?40 ?45 ? ?50 ? ?55 ? ?60 ? ?65

要進行擬合,可以用matlab的regress函數(shù)

clear all;

x=[13.2 15.1 16.4 17.1 17.9 18.7 19.6 21.2 22.5 24.3]';

X=[ones(10,1) x];

Y=[20 25 30 35 40 45 50 55 60 65]';

[b,bint,r,rint,stats]=regress(Y,X)

rcoplot(r,rint)

z=b(1)+b(2)*x

plot(x,Y,'k+',x,z,'r')

最終得到:

產(chǎn)量=-39.4070+4.4036*溫度

其實regress函數(shù)用到的是最小二乘算法

即假設(shè)在一個 2維坐標上,有很多個點,我們劃一條線,直線滿足:坐標上所有的點到直線上的距離和最小。

需要先計算擬合優(yōu)度r:

代碼實現(xiàn):

p=0;

for i=1:10

p=p+x(i)*Y(i);

end

a=sum(p);

b=10*mean(x)*mean(Y);

fenzi=a-b;

c=0;

for i=1:10

c=c+x(i)*x(i)-mean(x)^2;

end

d=0;

for i=1:10

d=d+Y(i)*Y(i)-mean(Y)^2;

end

fenmu=sqrt(c*d);

r=fenzi/fenmu

得到r=0.9910,說明擬合效果非常好,通常大于0.7就可以用來預測。

設(shè)方程為y=a+bx

接下來就可以計算系數(shù)了

http://blog.csdn.net/marsjohn/article/details/54911788這里有詳細的推導過程

也得到產(chǎn)量=-39.4070+4.4036*溫度

與用regress函數(shù)所得結(jié)果相同

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容