熱心網友

我們以一簡單數據組來說明什么是線性回歸。假設有一組數據型態為 y=y(x),其中 x={0, 1, 2, 3, 4, 5}, y={0, 20, 60, 68, 77, 110} 如果我們要以一個最簡單的方程式來近似這組數據,則非一階的線性方程式莫屬。先將這組數據繪圖如下 圖中的斜線是我們隨意假設一階線性方程式 y=20x,用以代表這些數據的一個方程式。以下將上述繪圖的 MATLAB 指令列出,并計算這個線性方程式的 y 值與原數據 y 值間誤差平方的總合。 x=[0 1 2 3 4 5]; y=[0 20 60 68 77 110]; y1=20*x; % 一階線性方程式的 y1 值 sum_sq = sum(y-y1)。^2); % 誤差平方總合為 573 axis([-1,6,-20,120]) plot(x,y1,x,y,'o'), title('Linear estimate'), grid如此任意的假設一個線性方程式并無根據,如果換成其它人來設定就可能采用不同的線性方程式;所以我們 須要有比較精確方式決定理想的線性方程式。我們可以要求誤差平方的總合為最小,做為決定理想的線性方 程式的準則,這樣的方法就稱為最小平方誤差(least squares error)或是線性回歸。MATLAB的polyfit函數提供了 從一階到高階多項式的回歸法,其語法為polyfit(x,y,n),其中x,y為輸入數據組n為多項式的階數,n=1就是一階 的線性回歸法。polyfit函數所建立的多項式可以寫成 從polyfit函數得到的輸出值就是上述的各項系數,以一階線性回歸為例n=1,所以只有 二個輸出值。如果指令為coef=polyfit(x,y,n),則coef(1)= , coef(2)=,。。。,coef(n+1)= 。注意上式對n 階的多 項式會有 n+1 項的系數。我們來看以下的線性回歸的示范: x=[0 1 2 3 4 5]; y=[0 20 60 68 77 110]; coef=polyfit(x,y,1); % coef 代表線性回歸的二個輸出值 a0=coef(1); a1=coef(2); ybest=a1*x+a0; % 由線性回歸產生的一階方程式 sum_sq=sum(y-ybest)。^2); % 誤差平方總合為 356。82 axis([-1,6,-20,120]) plot(x,ybest,x,y,'o'), title('Linear regression estimate'), grid。