嶺回歸,Lasso和LAR學習 一

2021-07-03 11:14:59 字數 3427 閱讀 9534

概要:我們要區分嶺回歸和lasso以及lar的關係,嶺回歸是用於消除多重共線性問題,也可以用於刪除無效變數(貢獻率低或打醬油變數,後面會提及)。lasso是嶺回歸的改進演算法,對刪除無效變數有幫助,而lar是求lasso解的一種有效演算法。

先進入多遠線性回歸問題,先觀察以下矩陣:

這裡y是因變數,β1~βp是所有x的係數,β0是常數,ε1~εn是誤差。因此,多遠線性回歸可以表示成:

用矩陣乘法表示,更加簡潔。那麼問題來了,y是結果,即因變數,而x是影響因素,即自變數,在實際分析中,y和x是已知的我們要求的就是β,即x的係數。這裡根據數學推導,可以求的β的表示式為:

這個式子是用最小二乘法對β的估計結果,補充說明的是,該式可以化簡為:

其中,叫做矩陣的廣義逆。那麼問題就繼續分析求x的逆的問題,但在實際問題中,我們會面臨兩個重要問題,一是x是否是奇異矩陣,二是x中變數是不是都做出貢獻。

為體現我的寫部落格宗旨,這裡解釋一下奇異性和貢獻的意思,1,奇異矩陣的充要條件就是x矩陣的行列式為0(|x|=0),我們知道如果乙個矩陣中存在某幾個個向量共線(就是兩個向量成比例),那這個矩陣的行列式就一定是0,即該矩陣叫做奇異矩陣。2,變數有沒有貢獻就是指某個x指針對結果y有沒有影響,比如y是某學生的考試平均分,x中有x1(語文成績),x2(數學成績),x3(吃飯速度)……這裡x3這個分量就是打醬油的資料,對y的最終貢獻率為0,那我們就要把x3這個分量剔除。

因此,直接用最小二乘法會遇到求不出解的情況,於是我們的問題就轉而變成研究:1,消除共線性(去除奇異性);2,剔除無效分量x。

在實際問題中,若某兩個x分量的比值很大(數/很小的數),我們就認為這兩個分量線性相關,而剔除無效分量的方法在後面會講到。

嶺回歸(ridge regression,rr)

2023年由heer首先提出,2023年後他與肯納德合作進一步發展了該方法。rr要先對資料做標準化,為了記號方便,標準化後癿學習集仍然用x表示

其實嶺回歸說白了就是增加原矩陣的穩定性。公式如下:

,其中k稱為嶺引數。

嶺回歸的幾個明顯性質:

當自變數間存在共線性時,|x′x|≈0,我們設想給x′x加上乙個正常數矩陣ki,(k>0),那麼x′x+ki接近奇異癿程度就會比x′x接近奇異癿程度小得多。

嶺回歸做為β癿估計應比最小二乘估計穩定,當k=0時癿嶺回歸估計就是普通癿最小二乘估計。

對k取不同的值,然後分別計算β(k),就可以得到得到嶺跡圖。這裡舉個栗子:

假設已知x1,x2與y的關係服從線性回歸型 y=10+2*x1+3*x2+ε(實際中的10,2,3,ε為待定係數)

因為k是隨主觀選取的值,所以我們可以得到一組關於k的估計族。

根據該錶作得嶺跡圖:

這裡需要說明β(k)是關於k是有偏估計,有偏無偏是指估計的期望是否與真是值相等(即樣本觀察的統計量無限逼近總體的統計量)。

作完嶺跡圖,就是嶺跡分析和選取合適的k值和篩選合適的x分量。

嶺引數選取的原則:

 選擇k(戒 lambda)值,使到

(1)各回歸係數的嶺估計基本穩定;

(2)用最小二乘估計時符號不合理的回歸係數,其嶺估計的符號變得合理;

(3)回歸係數沒有不合乎實際意義的絕對值;

(4)殘差平方和增大不太多。

ps:反正就是取嶺跡圖中的平穩拐點(上圖目測估計0.3左右)。

嶺回歸選擇變數的原則:

(1)在嶺回歸中設計矩陣x已經中心化和標準化了,這樣可以直接比較標準化嶺回歸係數的大小。可以剔除掉標準化嶺回歸係數比較穩定且絕對值很小的自變數。

(2)隨著k的增加,回歸係數穩定,震動趨於零的自變數也可以剔除。

(3)如果依照上述去掉變數的原則,有若干個回歸係數穩定,究竟去掉幾個,去掉哪幾個,這並無一般原則可循,這需根據去掉某個變數後重新進行嶺回歸分析的效果來確定。

舉個栗子:

把15個回歸係數的嶺跡畫到圖中,我們可看到,當k=0.20時嶺跡大體上達到穩定。按照嶺跡法,應取k=0.2。

選擇變數

 在用嶺回歸進行變數選擇時,因為從嶺跡看到自變數x4,x7,x10,x11和x15有較穩定且絕對值比較小的嶺回歸係數,根據變數選擇的第一條原則,這些自變數可以去掉。

 又因為自變數x12和x13的嶺回歸係數很不穩定,且隨著k增加很快趨於零,根據上面的第二條原則這些自變數也應該去掉。

 再根據第三條原則去掉變數x3和x5。

 這個問題最後剩的變數是x1,x2,x6,x8,x9,x14。

這裡用統計語言r具體操作一下。

1,得到測試資料longley

>library(mass)//載入函式包
>longley//載入資料
2,構建模型並作嶺跡圖

>names(longley)[1]
>lm.ridge(y~.,longley)//build the model
>plot(lm.ridge(y~.,longley,lambda=seq(0,0.1,0.001)))//graph
3,選取合適k值

>select(lm.ridge(y~.,longley,lambda=seq(0,0.1,0.001)))

給出三個k值的參考值,我們通常用gcv,這裡k取0.006。

嶺回歸的問題總結

 嶺引數計算方法太多,差異太大

 根據嶺跡圖進行變數篩選,隨意性太大

 嶺回歸返回的模型(如果沒有經過變數篩選)包含所有的變數

總而言之,嶺回歸方法有乙個致命缺點,主觀性性太大,基本我們學習下來發現,選取k值和刪除x分量,基本都要靠目測,因此不適合大資料和機器學習思想。於是lasso的出現,就是改進的嶺回歸演算法,在嶺回歸,lasso和lar學習(二)中會詳細介紹。

嶺回歸和lasso回歸

在多元線性回歸模型中估計回歸係數使用的是ols,但同時還也有異方差和多重共線性的影響。回歸中關於自變數的選擇大有門道,變數過多時可能會導致多重共線性問題造成回歸係數的不顯著,甚至造成ols估計的失效。嶺回歸和lasso回歸在ols回歸模型的損失函式上加上了不同的懲罰項,該懲罰項由回歸係數的函式構成,...

嶺回歸和LASSO

0 對於正則罰項的理解 1 嶺回歸 l2 ridge regression 是一種專用於共線性資料分析的有偏估計回歸方法,實質上是一種改良的最小二乘估計法,通過放棄最小二乘法的無偏性,以損失部分資訊 降低精度為代價獲得回歸係數更為符合實際 更可靠的回歸方法,對病態資料的擬合要強於最小二乘法。關於最小...

機器學習 嶺回歸和LASSO回歸

1.用矩陣表示多元線性回歸 y bx a q b y bx t y bx 達到最小時的b值。也即是殘差平方和最小時。b bi 的值。可以證明b的最小二乘估計 xtx 1xty 其中 xtx 1為廣義逆。1.出現多重共線性2.當n 嶺回歸 ridge regression 先對資料做標準化 b k x...