本帖最后由 ysq 于 2016-3-7 20:23 編輯
嶺回歸和lasso---回歸的拓展,目的:解決回歸中的重大疑難問題“排除多重共線性,進(jìn)行變量的選擇”。
一、回歸問題之?dāng)?shù)學(xué)背景
多元線性回歸的最小二乘解(無偏估計(jì))
將原先很復(fù)雜回歸問題,寫成矩陣形式,以簡化回歸公式和對回歸問題的描述。
n個(gè)樣本,p個(gè)變量,X,y已知。對數(shù)據(jù)中心化、標(biāo)準(zhǔn)化處理后,可以去掉截距項(xiàng)。
矩陣形式的多元線性模型為
,求解β,使得誤差項(xiàng)ε能達(dá)到最低。
殘差ε為
,殘差平方和RSS為file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\277418979\QQ\WinTemp\RichOle\I_)0))93PL7IQRA87Q]S{6U.png
∴多元線性回歸問題變?yōu)榍蠼猞拢瑥亩箽埐钇椒胶蜆O小值問題(關(guān)于系數(shù)向量β的二次函數(shù)極值問題)。
求解方法:配方法(最小二乘法)和求偏導(dǎo)法。
殘差向量的幾何意義:響應(yīng)y向量到由p個(gè)x向量組成的超平面的距離向量。
殘差平方和幾何意義:殘差向量長度的平方。
可以證明β的最小二乘估計(jì)為
X矩陣不存在廣義逆(即奇異性)的情況:
1)X本身存在線性相關(guān)關(guān)系(即多重共線性),即非滿秩矩陣。
當(dāng)采樣值誤差造成本身線性相關(guān)的樣本矩陣仍然可以求出逆陣時(shí),此時(shí)的逆陣非常不穩(wěn)定,所求的解也沒有什么意義。
2)當(dāng)變量比樣本多,即p>n時(shí).
這時(shí),回歸系數(shù)會(huì)變得很大,無法求解。在統(tǒng)計(jì)學(xué)上,可證明β的最小二乘解為無偏估計(jì),即多次得到的采樣值X而計(jì)算出來的多個(gè)系數(shù)估計(jì)值向量
的平均值將無限接近于真實(shí)值向量β。
嶺回歸和lasso回歸屬于有偏估計(jì)。
二、嶺回歸(Ridge Regression,RR)
1962年由Heer首先提出,1970年后他不肯納德合作進(jìn)一步發(fā)展了該方法。
先對數(shù)據(jù)做標(biāo)準(zhǔn)化,為了記號方便,標(biāo)準(zhǔn)化后癿樣本數(shù)據(jù)學(xué)習(xí)集仍然用X表示。
思路:在原先的β的最小二乘估計(jì)中加一個(gè)小擾動(dòng)λI,是原先無法求廣義逆的情況變成可以求出其廣義逆,使得問題穩(wěn)定并得以求解。
(式1)
上式中,此時(shí)隨著λ而變化,是λ的函數(shù),稱為關(guān)于嶺參數(shù)λ的嶺回歸估計(jì)。
此時(shí)極值問題的求解函數(shù)也不再是原來的殘差平方和表達(dá)式了,而變成了下式:
(式2)
對上式用偏導(dǎo)數(shù)求極值,結(jié)果就是 (式1)。后面這一項(xiàng)
稱為懲罰函數(shù),它保證了β值不會(huì)變的很大。嶺參數(shù)λ不同,嶺回歸系數(shù)也會(huì)不同。
在數(shù)學(xué)上可以證明,(式2)代表的極值問題和下式(式3)的極值問題完全一致:
(式3)
但(式3)可以更好地描述嶺回歸的幾何意義。
(式3)中第一行與多元線性回歸的殘差平方和Q(β)相同,第二行是對第一行的一個(gè)約束項(xiàng),也就是說所有系數(shù)β平方和應(yīng)該<某個(gè)閾值t。
(式2)中的λ和(式3)中的t是一一對應(yīng)的關(guān)系,也就是說兩個(gè)問題是等價(jià)的。
以兩個(gè)變量為例,解釋嶺回歸的幾何意義1)沒有約束項(xiàng)時(shí)
系數(shù)β1和β2已經(jīng)經(jīng)過標(biāo)準(zhǔn)化。殘差平方和RSS可以表示為β1和β2的一個(gè)二次函數(shù),數(shù)學(xué)上可以用一個(gè)拋物面表示。
圖1
2)嶺回歸時(shí)
約束項(xiàng)為β12 β22≤t,對應(yīng)著投影為β1和β2平面上的一個(gè)圓,即下圖中的圓柱。
圖2
該圓柱與拋物面的交點(diǎn)對應(yīng)的β1、β2值,即為滿足約束項(xiàng)條件下的能取得的最小的β1和β2.
從β1β2平面理解,即為拋物面等高線在水平面的投影和圓的交點(diǎn),如下圖所示
圖3
可見嶺回歸解與原先的最小二乘解是有一定距離的。
嶺回歸性質(zhì)
1)當(dāng)嶺參數(shù)為0,得到最小二乘解。
2)當(dāng)嶺參數(shù)λ趨向更大時(shí),嶺回歸系數(shù)β估計(jì)趨向于0。---為了使(式2)約束項(xiàng)很小,才能實(shí)現(xiàn)(式2)整體嶺函數(shù)達(dá)到極小。
是回歸參數(shù)β的
有偏估計(jì)。它的結(jié)果是使得殘差平和變大,但是會(huì)使系數(shù)檢驗(yàn)變好,即
R語言summary結(jié)果中變量后的*變多。
4)在認(rèn)為嶺參數(shù)λ是與y無關(guān)的常數(shù)時(shí),是最小二乘估計(jì)的一個(gè)線性變換,也是y的線性函數(shù)。
但在實(shí)際應(yīng)用中,由于λ總是要通過數(shù)據(jù)確定,因此λ也依賴于y、因此從本質(zhì)上說,并非的線性變換,也非y的線性函數(shù)。
5)對于回歸系數(shù)向量來說,有偏估計(jì)回歸系數(shù)向量長度<無偏估計(jì)回歸系數(shù)向量長度,,即比理想值要短。
6)存在某一個(gè)λ,使得它所對應(yīng)的的MSE(估計(jì)向量的均方誤差)<最小二乘法對應(yīng)估計(jì)向量的的MSE。
即 存在λ>0,使得
。
理解 : 和β平均值有偏差,但不能排除局部可以找到一個(gè)比更接近β。
嶺跡圖
是λ的函數(shù),嶺跡圖的橫坐標(biāo)為λ,縱坐標(biāo)為β(λ)。而β(λ)是一個(gè)向量,由β1(λ)、β2(λ)、...等很多分量組成,每一個(gè)分量都是λ的函數(shù),將每一個(gè)分量分別用一條線。
當(dāng)不存在奇異性時(shí),嶺跡應(yīng)是穩(wěn)定地逐漸趨向于0
嶺跡圖作用:
1)觀察λ最佳取值;
2)觀察變量是否有多重共線性;
可見,在λ很小時(shí),通常各β系數(shù)取值較大;而如果λ=0,則跟普通意義的多元線性回歸的最小二乘解完全一樣;當(dāng)λ略有增大,則各β系數(shù)取值迅速減小,即從不穩(wěn)定趨于穩(wěn)定。
上圖類似喇叭形狀的嶺跡圖,一般都存在多重共線性。
λ的選擇:一般通過觀察,選取喇叭口附近的值,此時(shí)各β值已趨于穩(wěn)定,但總的RSS又不是很大。
選擇變量:刪除那些β取值一直趨于0的變量。
注意:用嶺跡圖篩選變量并非十分靠譜。
嶺參數(shù)的一般選擇原則
選擇λ值,使到
1)各回歸系數(shù)癿嶺估計(jì)基本穩(wěn)定;
2)用最小二乘估計(jì)時(shí)符號不合理癿回歸系數(shù),其嶺估計(jì)的符號變得合理;
3)回歸系數(shù)沒有不合乎實(shí)際意義癿絕對值;
4)殘差平方和增大不太多。 一般λ越大,系數(shù)β會(huì)出現(xiàn)穩(wěn)定的假象,但是殘差平方和也會(huì)更大。
取λ的方法比較多,但是結(jié)果差異較大。這是嶺回歸的弱點(diǎn)之一。
嶺回歸選擇變量的原則(不靠譜,僅供參考)
1)在嶺回歸中設(shè)計(jì)矩陣X已經(jīng)中心化和標(biāo)準(zhǔn)化了,這樣可以直接比較標(biāo)準(zhǔn)化嶺回歸系數(shù)癿大小??梢蕴蕹魳?biāo)準(zhǔn)化嶺回歸系數(shù)比較穩(wěn)定且絕對值很小癿自變量。
2)隨著λ的增加,回歸系數(shù)不穩(wěn)定,震動(dòng)趨于零的自變量也可以剔除。
3)如果依照上述去掉變量的原則,有若干個(gè)回歸系數(shù)不穩(wěn)定,究竟去掉幾個(gè),去掉哪幾個(gè),這幵無一般原則可循,這需根據(jù)去掉某個(gè)變量后重新進(jìn)行嶺回歸分析的效果來確定。
用R做嶺回歸
library(MASS)#嶺回歸在MASS包中。
longley #內(nèi)置數(shù)據(jù)集,有關(guān)國民經(jīng)濟(jì)情況的數(shù)據(jù),以多重共線性較強(qiáng)著稱
summary(fm1<-lm(Employed~.,data=longley)) #最小二乘估計(jì)的多元線性回歸
#結(jié)果可見,R^2很高,但是系數(shù)檢驗(yàn)不是非常理想
names(longley)[1]<-'y'
lm.ridge(y~.,longley) #此時(shí),仍為線性回歸
plot(lm.ridge(y~.,longley,lambda=seq(0,0.1,0.001))) #加了參數(shù)lambda的描述后才畫出響應(yīng)的嶺跡圖
#由于lambda趨于0時(shí),出現(xiàn)了不穩(wěn)定的情況,所以可以斷定變量中存在多重共線性
select(lm.ridge(y~.,longley,lambda=seq(0,0.1,0.001))) #用select函數(shù)可算lambda值,結(jié)果給出了3種方法算的的lambda的估計(jì)值
modified HKB estimator is 0.006836982
modified L-W estimator is 0.05267247
smallest value of GCV at 0.006
#以上結(jié)果通常取GCV估計(jì),或者觀察大多數(shù)方法趨近哪個(gè)值。
R的ridge包
###在R語言中已下架,沒有安裝成功
下載地址 https://cran.r-project.org/src/contrib/Archive/ridge/?C=D;O=A
嶺回歸缺陷
1.主要靠目測選擇嶺參數(shù)
2.計(jì)算嶺參數(shù)時(shí),各種方法結(jié)果差異較大
所以一般認(rèn)為,嶺跡圖只能看多重共線性,卻很難做變量篩選。
三、LASSO
Tibshirani(1996)提出了Lasso(The Least Absolute Shrinkage and Selectionatoroperator)
算法,這里 Absolute 指的絕對值。
Shrinkage收縮的含義:
類似于圖3,即系數(shù)收縮在一定區(qū)域內(nèi)(比如圓內(nèi))。
主要思想:
通過構(gòu)造一個(gè)一階懲罰函數(shù)獲得一個(gè)精煉的模型;通過最終確定一些指標(biāo)(變量)癿系數(shù)為零(嶺回歸估計(jì)系數(shù)等于0癿機(jī)會(huì)微乎其微,造成篩選變量困難),解釋力很強(qiáng)。
擅長處理具有多重共線性癿數(shù)據(jù),篩選變量,與嶺回歸一樣是有偏估計(jì)。
LASSO vs 嶺回歸
1)對于嶺回歸的兩個(gè)表達(dá)式:
一方面可以將其變成一個(gè)最小二乘問題
另一方面可以將它解釋成一個(gè)帶約束項(xiàng)的系數(shù)優(yōu)化問題。
λ增大的過程就是t減小的過程,該圖也說明了嶺回歸系數(shù)估計(jì)值為什么通常不為0,因?yàn)殡S著拋物面的擴(kuò)展,它與約束圓的交點(diǎn)可能在圓周上的任意位置,除非交點(diǎn)恰好位于某個(gè)坐標(biāo)軸或坐標(biāo)平面上,否則大多數(shù)情況交點(diǎn)對應(yīng)的系數(shù)值都不為零。再加上λ的選擇應(yīng)使橢球面和圓周的交點(diǎn)恰好在一個(gè)坐標(biāo)平面上,更增加了求解λ的難度。
2)對于LASSO回歸
(式3)---第一個(gè)表達(dá)式與嶺回歸的區(qū)別在于懲罰項(xiàng)上,其懲罰函數(shù)是一個(gè)β的一階函數(shù)。
(式4)---第二個(gè)表達(dá)式將上式也轉(zhuǎn)化為一個(gè)約束項(xiàng)。t和λ也是一一對應(yīng)的,λ增大的過程就是t減小的過程。
由于方框的頂點(diǎn)更容易交于拋物面,也就是lasso更易求解,而該頂點(diǎn)對應(yīng)的很多系數(shù)為0,也就是起到了篩選變量的目的。
回歸過程對比:
左圖為嶺回歸,右圖為lasso回歸
橫軸越往左,自由度越小(即圓或方框在收縮的過程),λ越大,系數(shù)(即縱軸)會(huì)越趨于0。但是嶺回歸沒有系數(shù)真正為0,但lasso的不斷有系數(shù)變?yōu)?.
四、更一般化的模型
不同q對應(yīng)的約束域形狀
五、彈性網(wǎng)
Zouand Hastie (2005)提出elasticnet,介于嶺回歸和lasso回歸之間,現(xiàn)在被認(rèn)為是處理多重共線性和變量篩選最好的收縮方法,而且損失的精度不會(huì)太多。
六、LAR(最小角回歸)Lasso回歸中第一個(gè)表達(dá)式(式3)用偏導(dǎo)求極值時(shí),存在部分點(diǎn)不可導(dǎo)的情況(如方框的尖點(diǎn)),如何解決?
Least Angel Regression ,參考書The Elements of Statistical Learning .pdf
Efron于2004年提出癿一種變量選擇癿方法,類似于向前逐步回歸(Forward Stepwise)癿形式,最初用于解決傳統(tǒng)的線性回歸問題,有清晰的幾何意義。
是lasso regression癿一種高效解法。
向前逐步回歸(Forward Stepwise)丌同點(diǎn)在于,F(xiàn)orward Stepwise每次都是根據(jù)選擇癿變量子集,完全擬合出線性模型,計(jì)算出RSS,再設(shè)計(jì)統(tǒng)計(jì)量(如AIC)對較高癿模型復(fù)雜度作出懲罰,而LAR是每次先找出和因變量相關(guān)度最高癿那個(gè)變量, 再沿著LSE癿方向一點(diǎn)點(diǎn)調(diào)整這個(gè)predictor癿系數(shù),在這個(gè)過程中,這個(gè)變量和殘差癿相關(guān)系數(shù)會(huì)逐漸減小,等到這個(gè)相關(guān)性沒那么顯著癿時(shí)候,就要選進(jìn)新癿相關(guān)性最高癿變量,然后重新沿著LSE癿方向進(jìn)行變動(dòng)。而到最后,所有變量都被選中,就和LSE相同了。
左圖為LAR逐步加上變量的過程(從左往右看),右圖為LASSO變量逐漸淘汰的收縮過程(從右往左看)。
對比兩幅圖,非常類似。所以可以用LAR方法來計(jì)算LASSO,該方法完全是線性解決方法,沒有迭代的過程。
相關(guān)系數(shù)的幾何意義
設(shè)變量y=[y1,y2,...yn]; 變量x=[x1,x2,...,xn].
其相關(guān)系數(shù)為
,其中cov--協(xié)方差、var---方差。
如果對x和y進(jìn)行中心化、標(biāo)準(zhǔn)化,則var(y)=var(x)=1,相關(guān)系數(shù)變?yōu)?font color='#0000ff'>x1y1 x2y2 .... xnyn,即為向量x和y的內(nèi)積=||x||*||y||*cos θ,其中θ為x和y的夾角。而對于標(biāo)準(zhǔn)化和中心化后的x和y,則有||x||=||y||=1,所以此時(shí)x和y的內(nèi)積就是它們夾角的余弦。
---如果x和y向量很像,幾乎重合,則夾角θ=0,也就是相關(guān)系數(shù)=內(nèi)積=1,此時(shí)稱為高度相關(guān).
---如果x和y相關(guān)程度很低,則表現(xiàn)出來的x和y向量相互垂直,相關(guān)系數(shù)=0.
---- 如果相關(guān)系數(shù)=-1,標(biāo)明x和y呈180°,即負(fù)相關(guān)。
LAR算法及幾何意義
參考書The Elements of Statistical Learning .pdf的74頁。LAR和Lasso的區(qū)別以及LAR解Lasso的修正
參考書The Elements of Statistical Learning .pdf的76頁。
LAR過程圖解
有6個(gè)變量,最先加入與殘差向量相關(guān)系數(shù)最大的淺藍(lán)色v2,在v2變化過程中,相關(guān)系數(shù)越變越小,直到等于深藍(lán)色的v6,于是加入v6,沿著v2與v6的最小角方向(即向量角分線方向)前進(jìn),此后v2和v6與殘差向量的相關(guān)系數(shù)是共同變化的,即兩者合并變化,使得相關(guān)系數(shù)越來越小,直到加入黑色v4為止,三個(gè)變量一起變化,...,一直打到最小二乘解為止,此時(shí)殘差向量與所有變量的相關(guān)系數(shù)都為0,即與他們都垂直。
橫坐標(biāo)L1 Length表示:從原點(diǎn)開始走了多長距離,就是絕對值距離,L1范數(shù)。
R語言中對LAR的實(shí)現(xiàn)
install.packages('lars') #lars包
longley #用longley數(shù)據(jù)集,它是一個(gè)著名的多重共線性例子
w=as.matrix(longley) #將數(shù)據(jù)集轉(zhuǎn)換為一個(gè)矩陣
laa=lars(w[,2:7],w[,1]) #w的2:7列為自變量,第1列為因變量
laa #顯示LAR回歸過程
Call:
lars(x = w[, 2:7], y = w[, 1])
R-squared: 0.993
Sequence of LASSO moves:
GNP Year Armed.Forces Unemployed Employed Population Year Employed Employed Year Employed Employed
Var 1 5 3 2 6 4 -5 -6 6 5 -6 6
Step 1 2 3 4 5 6 7 8 9 10 11 12
#第一步加入1號變量,第二步加入5號變量,...,第七步5號變量被去掉,第八步6號變量被去掉,...
plot(laa) #畫lasso回歸過程圖
summary(laa)
LARS/LASSO
Call: lars(x = w[, 2:7], y = w[, 1])
Df Rss Cp
0 1 1746.86 1210.0561
1 2 1439.51 996.6871
2 3 32.31 12.6400
3 4 23.18 8.2425
4 5 22.91 10.0505
5 6 22.63 11.8595
6 7 18.04 10.6409
7 6 14.74 6.3262
8 5 13.54 3.4848
9 6 13.27 5.2974
10 7 13.01 7.1189
11 6 12.93 5.0624
12 7 12.84 7.0000
#以上結(jié)果顯示了每一步的殘差平方和RSS和多重共線性指標(biāo)Cp(Mallows's Cp http://en.wikipedia.org/wiki/Mallows%27_Cp)
#Cp越小,多重共線性越小,因此結(jié)果以第八步為準(zhǔn),即只剩下第1、2、3、4個(gè)變量。