[機器學習-迴歸算法]一元線性迴歸用最小二乘法的推導過程

一元線性迴歸用最小二乘法的推導過程

在數據的統計分析中,數據之間即變量x與Y之間的相關性研究非常重要,通過在直角座標系中做散點圖的方式我們會發現很多統計數據近似一條直線,它們之間或者正相關或者負相關。雖然這些數據是離散的,不是連續的,我們無法得到一個確定的描述這種相關性的函數方程,但既然在直角座標系中數據分佈接近一條直線,那麼我們就可以通過畫直線的方式得到一個近似的描述這種關係的直線方程。當然,從前面的描述中不難看出,所有數據都分佈在一條直線附近,因此這樣的直線可以畫出很多條,而我們希望找出其中的一條,能夠最好地反映變量之間的關係。換言之,我們要找出一條直線,使這條直線“最貼近”已知的數據點,設此直線方程爲:① y^=a+bx\hat{y} = a + bx

這裏的y^\hat{y}是爲了區分Y的實際值y(這裏的實際值就是統計數據的真實值,我們稱之爲觀察值),當x取值xix_i(i=1,2,3……n)時,Y的觀察值爲yiy_i,近似值爲y^\hat{y}(或者說對應的縱座標是y^=a+bx\hat{y} = a + bx)。

其中①式叫做Y對x的迴歸直線方程,b叫做迴歸係數。要想確定迴歸直線方程①,我們只需確定a與迴歸係數b即可。

設x,Y的一組觀察值爲:(xi,yi)(x_i, y_i) i = 1,2,3……n
其迴歸直線方程爲:y^=a+bx\hat{y} = a + bx

當x取值(i=1,2,3……n)時,Y的觀察值爲,差刻畫了實際觀察值與迴歸直線上相應點縱座標之間的偏離程度,見下圖:
在這裏插入圖片描述
實際上我們希望這n個離差構成的總離差越小越好,只有如此才能使直線最貼近已知點。換句話說,我們求迴歸直線方程的過程其實就是求離差最小值的過程

一個很自然的想法是把各個離差加起來作爲總離差。可是,由於離差有正有負,直接相加會互相抵消,如此就無法反映這些數據的貼近程度,即這個總離差不能用n個離差之和來表示,見下圖:
i=1n(yiyi^)\sum_{i=1}^n (y_i-\hat{y_i})
一般做法是我們用離差的平方和,即:
Q=i=1n(yiyi^)2=i=1n(yiabxi)2Q =\sum_{i=1}^n (y_i-\hat{y_i})^2 =\sum_{i=1}^n (y_i-a-bx_i)^2

作爲總離差 ,並使之達到最小。這樣迴歸直線就是所有直線中Q取最小值的那一條。由於平方又叫二乘方,所以這種使“離差平方和爲最小”的方法,叫做最小二乘法

求偏導
Q=i=1n(yiyi^)2=i=1n(yiabxi)2Qa=2i=1n[yi(a+bxi)](1)=2i=1n[a+bxiyi]=0Qb=2i=1n[yi(a+bxi)](xi)=2i=1nxi[a+bxiyi]=0\begin{aligned} Q &=\sum_{i=1}^n (y_i-\hat{y_i})^2 =\sum_{i=1}^n (y_i-a-bx_i)^2 \\ \frac{\partial Q }{\partial a} & = 2\sum_{i=1}^n[y_i-(a+bx_i)] *(-1) =2\sum_{i=1}^n[a+bx_i-y_i] =0\\ \frac{\partial Q }{\partial b} &= 2\sum_{i=1}^n[y_i-(a+bx_i)] *(-x_i) =2\sum_{i=1}^nx_i[a+bx_i-y_i] =0 \end{aligned}
由第一個偏導式化簡的到

i=1n[a+bxiyi]=0i=1n(a+bxiyi)n=0a+bxy=0a=ybx\begin{aligned} & \sum_{i=1}^n[a+bx_i-y_i] =0 \\ & \frac{\sum_{i=1}^n(a+bx_i-y_i)}{n} = 0 \\ & a+b\overline{x}-\overline{y} = 0 \\ & a = \overline{y} - b \overline{x} \end{aligned}

有第二個偏導式化簡的到

i=1nxi(a+bxiyi)=0i=1nxi(ybx+bxiyi)=0i=1n(xiyb(xix+xi2)xiyi)=0i=1n(xiyxiyi)=i=1nb(xixxi2)bi=1n(xixxi2)=i=1n(xiyxiyi)b=i=1n(xiyxiyi)i=1n(xixxi2)b=i=1n(xiyixiy)i=1n(xi2xix)b=i=1nxiyiyi=1nxii=1nxi2xi=1nxib=i=1nxiyinxyi=1nxi2nx2\begin{aligned} &\sum_{i=1}^nx_i(a+bx_i-y_i)=0 \\ & \sum_{i=1}^nx_i(\overline{y} - b \overline{x}+bx_i-y_i) =0 \\ & \sum_{i=1}^n(x_i\overline{y} - b (x_i\overline{x}+x_i^2)-x_iy_i) =0 \\ & \sum_{i=1}^n(x_i\overline{y} -x_iy_i) =\sum_{i=1}^nb (x_i\overline{x}-x_i^2) \\ & b \sum_{i=1}^n (x_i\overline{x}-x_i^2)=\sum_{i=1}^n( x_i\overline{y} -x_iy_i ) \\ & b = \frac{\sum_{i=1}^n (x_i \overline{y}-x_i y_i) } {\sum_{i=1}^n (x_i\overline{x}-x_i^2 )} \\ & b = \frac{\sum_{i=1}^n (x_i y_i - x_i \overline{y}) } {\sum_{i=1}^n (x_i^2 - x_i\overline{x} ) } \\ & b = \frac{\sum_{i=1}^n x_i y_i - \overline{y} \sum_{i=1}^n x_i } {\sum_{i=1}^n x_i^2 - \overline{x} \sum_{i=1}^nx_i } \\ & b = \frac{\sum_{i=1}^nx_iy_i-n\overline{x} \overline{y}}{\sum_{i=1}^nx_i^2-n\overline{x}^2} \end{aligned}

由以上兩個偏導式化簡可得:

(3){b=i=1nxiyinxyi=1nxi2nx2a=yb^x(3)\begin{cases} b =\frac{\sum_{i=1}^nx_iy_i-n\overline{x} \overline{y}}{\sum_{i=1}^nx_i^2-n\overline{x}^2} \\ a =\overline{y}-\hat{b}\overline{x} \end{cases}

其中x,y\overline{x} , \overline{y}xix_iyiy_i的均值,

我們先給出推導過程中用到的兩個關鍵變形公式的推導過程。首先是第一個公式:
在這裏插入圖片描述
接着是第二個公式:
在這裏插入圖片描述
把上面這兩個公式(1)(2)代入下面的公式(3)式得:

{b=i=1nxiyinxyi=1nxi2nx2=i=1n(xix)(yiy)i=1n(xix)2=SxySxxa=yb^x\begin{cases} b =\frac{\sum_{i=1}^nx_iy_i-n\overline{x}\overline{y}}{\sum_{i=1}^nx_i^2-n\overline{x}^2}=\frac{\sum_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})}{\sum_{i=1}^n(x_i-\overline{x})^2}= \frac{S_{xy}}{S_{xx}} \\ a =\overline{y}-\hat{b}\overline{x} \end{cases}

其中x,y\overline{x} , \overline{y}xix_iyiy_i的均值, Sxy=i=1n(xix)(yiy)S_{xy} =\sum_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})Sxx=i=1n(xix)2S_{xx} =\sum_{i=1}^n(x_i-\overline{x})^2

a、b的上方加“︿”表示是由觀察值按最小二乘法求得的估計值,a、b求出後,迴歸直線方程也就建立起來了。

參考資料
【1】https://blog.csdn.net/R18830287035/article/details/88384396
【2】 https://blog.csdn.net/marsjohn/article/details/54911788
【3】https://www.cnblogs.com/KID-yln/p/12840184.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章