R語言實(shí)現(xiàn)LASSO回歸的方法
Lasso回歸又稱為套索回歸,是Robert Tibshirani于1996年提出的一種新的變量選擇技術(shù)。Lasso是一種收縮估計(jì)方法,其基本思想是在回歸系數(shù)的絕對(duì)值之和小于一個(gè)常數(shù)的約束條件下,使殘差平方和最小化,從而能夠產(chǎn)生某些嚴(yán)格等于0的回歸系數(shù),進(jìn)一步得到可以解釋的模型。R語言中有多個(gè)包可以實(shí)現(xiàn)Lasso回歸,這里使用lars包實(shí)現(xiàn)。
1.利用lars函數(shù)實(shí)現(xiàn)lasso回歸并可視化顯示
x = as.matrix(data5[, 2:7]) #data5為自己的數(shù)據(jù)集 y = as.matrix(data5[, 1]) lar1 <-lars(x,y,type = "lasso") lar1 #查看得到的結(jié)果

從圖1可以看出通過lasso回歸得到的R^2為0.426,較低。標(biāo)紅的部分是在進(jìn)行l(wèi)asso回歸時(shí),自變量被選入的順序。下面用圖表的形式顯示。
plot(lar1)

可以看到圖2中的豎線對(duì)應(yīng)于lasso中迭代的次數(shù),對(duì)應(yīng)的系數(shù)值不為0的自變量即為選入的,豎線的標(biāo)號(hào)與圖1中的step相對(duì)應(yīng)。
2.選取cp值最小時(shí)對(duì)應(yīng)的模型,獲取模型對(duì)應(yīng)系數(shù)
對(duì)于選取最小cp值對(duì)應(yīng)的模型可以通過兩種方式實(shí)現(xiàn):
(1)顯示所有cp值,從中挑選最小的
summary(lar1) #輸出lasso對(duì)象的細(xì)節(jié),包括Df、RSS和Cp,其中Cp是MallowsCp統(tǒng)計(jì)量,通常選取Cp最小的那個(gè)模型

圖3顯示了lasso回歸中所有的cp值,選擇最小的,即上圖標(biāo)紅的部分,對(duì)應(yīng)的df=3,最前面一列對(duì)應(yīng)迭代次數(shù)(即步數(shù)),step=2 。
(2)直接選取最小的cp值
lar1$Cp[which.min(lar$Cp)] #選擇最小Cp,結(jié)果如下:

與圖3中標(biāo)紅的部分結(jié)果一樣,但是要注意,2表示的是step大小。
3.選取cp值最小時(shí)對(duì)應(yīng)的模型系數(shù)
(1)獲取所有迭代系數(shù),根據(jù)step大小選擇cp值最小對(duì)應(yīng)的自變量系數(shù)值
lar1$beta #可以得到每一步對(duì)應(yīng)的自變量對(duì)應(yīng)的系數(shù)

圖4標(biāo)紅的部分就是step=2對(duì)應(yīng)的cp值最小時(shí)對(duì)應(yīng)的模型的自變量的系數(shù)
(2)獲取指定迭代次數(shù)(即步數(shù))對(duì)應(yīng)的自變量的系數(shù),可以通過下面的代碼實(shí)現(xiàn):
coef <-coef.lars(lar,mode="step",s=3) #s為step+1,也比圖2中豎線為2的迭代次數(shù)對(duì)應(yīng),與圖3中df值相等;s取值范圍1-7. coef[coef!=0] #獲取系數(shù)值不為零的自變量對(duì)應(yīng)的系數(shù)值

與圖4中標(biāo)紅部分一樣。
4.獲取截距的系數(shù)
通過第4部分可以獲取cp值最小時(shí)對(duì)應(yīng)的自變量的系數(shù),但是沒有辦法獲取對(duì)應(yīng)模型的截距值,下面的代碼可以獲取對(duì)應(yīng)模型的截距值。
上面的代碼就是求取cp值最小時(shí)對(duì)應(yīng)的模型的截距值,結(jié)果如下:

總結(jié):
通過上面的4步可以利用R語言實(shí)現(xiàn)Lasso回歸,并可以獲取模型相應(yīng)的系數(shù)和截距值。
到此這篇關(guān)于R語言實(shí)現(xiàn)LASSO回歸的方法的文章就介紹到這了,更多相關(guān)R語言LASSO回歸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語言使用cgdsr包獲取TCGA數(shù)據(jù)示例詳解
這篇文章主要為大家介紹了R語言使用cgdsr包獲取TCGA數(shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
R語言 實(shí)現(xiàn)在循環(huán)中輸出圖片的操作
這篇文章主要介紹了R語言 實(shí)現(xiàn)在循環(huán)中輸出圖片的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
R語言-生成頻數(shù)表和列聯(lián)表crosstable函數(shù)介紹
這篇文章主要介紹了R語言-生成頻數(shù)表和列聯(lián)表crosstable函數(shù)介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
使用R語言實(shí)現(xiàn)自動(dòng)文摘的方法
本文介紹了如何使用R語言實(shí)現(xiàn)自動(dòng)文摘,我們首先介紹了基于詞頻-逆文檔頻率(TF-IDF)的自動(dòng)文摘方法,包括創(chuàng)建詞項(xiàng)文檔矩陣,計(jì)算TF-IDF值,提取關(guān)鍵詞,以及根據(jù)關(guān)鍵詞生成摘要,需要的朋友一起學(xué)習(xí)下吧2023-05-05
R語言 實(shí)現(xiàn)data.frame 分組計(jì)數(shù)、求和等
這篇文章主要介紹了R語言 實(shí)現(xiàn)data.frame 分組計(jì)數(shù)、求和等操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
R語言創(chuàng)建矩陣的實(shí)現(xiàn)方法
這篇文章主要介紹了R語言創(chuàng)建矩陣的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

