線性代數的視角理解LSR(least square regression)的引數評估演算法本質

世有因果知因求果發表於2018-08-18

https://medium.com/@andrew.chamberlain/the-linear-algebra-view-of-least-squares-regression-f67044b7f39b

線性迴歸是初學者學習的最重要的統計模型工具。然而,傳統的教學方式使得我們很難理解到這個regression的本質。大多數課程聚焦在"計算"檢視上,在這個計算檢視中,regression關注於每個觀察值和預測值之間差的平方和所形成的表示式,隨後我們對這個表示式應用求導取0,最終算得各個係數的值。

大多數教科書誘導學生們關注在這個痛苦的計算過程上,隨後依賴於類似R或者Stata的統計軟體包上,這導致學生嚴重依賴於這些軟體,而不會深入理解到底是怎麼工作的,其本質是什麼。。這往往是不真正理解數學的老師去教regression的常見方式。

在本文中,我將更優雅簡單地演示LSR的本質,我把他稱為"線性代數"檢視。

問題匯入

regression的終極目標是找到一個合適的model來擬合一系列觀測值的集合。本例中,我搜集了一些工廠每天機器故障的次數,比如我已經獲取了三個資料點(day, number of failure): (1,1),(2,2),(3,2)。

我們的目標是尋找到一個線性方程來擬合這三個點。我們相信存在一個數學對映,將"days"唯一對映為"failures",或者說:

的形式來對映

 這裡b就是每天的機器故障數, x是day, C,D是線性變換的係數,這也是我們要尋找的未知數。

我們將已知的三個資料點代入線性方程,得到:

對於前兩個點,model fit的非常好,但是第三個點卻開始出現問題,也就是說我們已經意識到:這三個點並不在一條直線上,我們的model只能最大限度的近似它。

我們來看看如何以$Ax = b$的方式來表達我們的線性模型:

 

從這個矩陣中,我們可以說我們希望向量$\vec{b}$存在於矩陣$A$的列空間$C(A)$中.也就是說,我們希望通過矩陣A的列向量做線性組合能夠得到我們的觀測值$b$列向量。

然而,不幸的是,我們已經知道$b$本身並不能完全由A的列向量線性表示。這意味著向量$b$並不在$A$的列空間中.所以我們並不能通過解線性方程組的方式來求解到$x(C,D)$.

我們來繼續通過畫圖來了解發生著什麼。

 在下面的手繪中,矩陣A的列向量空間被記為$C(A)$。它為三維空間中的一個平面。如果我們將矩陣$A$的兩個列向量記錄為$a_1,a_2$,則列空間就是兩個列向量所有線性組合構成的平面。

同時你可以看到觀測值構成的列向量$b$並不存在於該平面中,而是和該平面有所交集,被標誌為$b$。

平面$C(A)$是我們理想的數學模型,而向量$b$則是我們實際的觀測值向量,並不能完美地落線上性空間$C(A)$中,那麼我們需要怎麼去做呢?

線性迴歸模型的方法是:我們應該放棄尋找一個model能夠完美擬合到$b$,相反的是我們應該找到一個另外一個足夠接近目標$b$向量的向量,而該向量能夠在$A$的列空間中。也就是說我們需要在列空間中找到一個向量$p$,使得$p$和$a$越靠近越好。

下面的圖片演示了這個過程。我們可以想象一下,如果從$C(A)$平面的正上方向下打一個光線,這將在$C(A)$上形成一個線段的影子。這實際上就是向量$b$在矩陣$A$的列空間平面上的投影projection.這個投影在圖中我們以$p$標籤來標識。

被標註為$e$的向量實際上是真值向量$b$和我們計劃使用的投影向量$p(\hat{b})$之間的。現在我們可以將我們的目標使用另外一種方式來描述:尋找一個合適的向量$p$使得$e$越小越好。也就是說,我們希望最小化$p,b$之間的誤差。

在上面的圖中,$e$就是觀察值向量$b$減去投影向量$p$或者記為$b-p$.而投影向量$p$本身就是$A$的列向量線性組合----這也是為什麼$p$能夠在$A$的列空間中的原因----所以$p$應該等於$A$去乘以一個向量,我們記為$\hat{x}$

為了最小化這個$e$,我們希望選擇一個垂直於$e$但和$b$同向的向量$p$,在圖中,$e$和$p$的夾角我們標註為90度的角。

求解Regression係數

既然e和A的列空間平面垂直,那麼意味著$A$的列向量和$e$的點乘都為0(因為列空間的所有向量都和$e$垂直,而$A$的列向量必然在列空間裡,故而),$A\cdot e = 0,A^T\times e = 0$, 同時既然$e=b-p, p = A \times \hat{x}$,我們就可以得到:

$$A^{T}(b-A\hat{x})=0$$

從上面方程中解出$\hat{x}$,我們就得到:

$\hat{x}$的每個元素就是計算出來的係數$C,D$,這正是我們要尋找的。做線性迴歸本質上就是在解方程:$Ax = b$,但是如果任何b中的觀測值背離線性模型,那麼A將不是可逆矩陣。因此我們通過在左右分別乘上矩陣$A$的轉置矩陣$A^{T}$使得其為可逆矩陣。$A^{T}A$總是一個對稱的方陣,所以是可逆的,然後我們就用它來求解$\hat{x}$

使用這種代數檢視還有其他的一些好處,其中之一:非常方便理解相關係數$r$.如果我們正規化x,y資料點,也就是說分別減去其均值,那麼r就是$b,C(A)$的夾角的餘弦值。

$cos()$函式值的範圍是-1到1,就和r的值域一樣。如果regression完全擬合,r=1,這意味著$b$在平面上。如果b在平面上,那麼夾角是0,而$cos(0)=1$,相反,如果regression非常糟糕,r=0,而b和平面是垂直的,這時$cos(pi/2)=0$

 

相關文章