最小角迴歸和上一篇說的forward stepwise有一些相似的地方是都是將一些variable選到variable集合中來,不一樣的是,forward stepwise 每次選的都是與當前殘差相關度最大的variable,選進來以後,會重新對所有的入選variable做一下回歸,而最小角迴歸的做法是,同樣是首先找到與當前殘差相關度最大的variable,然後沿着這個這個variable的方向行徑,行經過程中殘差與這個variable的相關度會逐漸減小,直到發現了有另外一個variable,它與當前殘差的相關度和剛纔那個variable與殘差的相關度一樣了,此時就不往第一個variable的方向行徑,而是往這2個variable的方向,那這個方向是什麼呢?幾何上就是這兩個variable方向的角平分線方向,看下下面的圖:
這張圖說明了這個過程的前兩步(記得做之前將x標準化,將y中心化),首先發現x1比x2更加得和y2相關,所以先沿着x1的方向移動,直到走到u1時,發現x1,x2與此時的殘差相關程度一樣了,那麼此時移動的方向就是x1,x2所呈角的角平分線方向,按照這個方向移動,直到下一個variable出現,按照此過程一直移動,直到所有的variable都被找出來。
方向可以用這個式子來定義,有:
這個式子Xak表示當前入選的variable,相當於用當前的variable對殘差rk做了一次regression,可以看出這個方向向量一開始只有一個非0的數,隨着variable的增加,0的個數逐漸較少。
每一次更新估計的參數爲,
alpha爲這個方向移動的距離,移動到出現一個variable和當前入選variable與殘差相關度相等時(因爲每次都是按照角平分線,所以當前入選的所有variable與殘差相關度都是相等的),移動停止。
值得說明的兩點:
1 其實stagewise 從u0走到u1走了走了很多步,因爲它選了x1後還是發現x1與當前殘差相關性最大,所以他需要非常多的步驟找到u1,更多的步驟找到所有的variable,這個方法過於保守。
2 而對於stepwise,它一下子就找到y1(y1是y2在x1上的投影),也就是y2關於x1做regression的結果,所以說這個方法過於激進。
而Least Angel Regression 則是上面兩個方法的折中法。
可以發現,按照這樣的path移動,所有被找到的variable和當前殘差的相關性都是一樣的。如下圖:
這圖(橫座標是路徑的長度)說明了相關性(注意這裏都取了絕對值)逐漸下降並且所有被選進的variable相關性相等。
然而最令我費解的是,Least Angel Regression 和Lasso還有一定的關係,如下圖:
lasso就是把嶺迴歸參數向量的長度平方改成了絕對值的和,對於這兩個方法,有一個重要的性質是:
如果不存在某個參數隨着path長度增加而穿過了0這個座標,那麼lasso的解和Least Angel Regression的解是一樣的,可以發現圖中,在橫座標18以前,圖都是一樣的,而在18這個位置,深藍色的線穿過了0。
表示自己水平不夠看不懂The elements of statistical learing 裏面的解釋,就先放在這裏吧。