如何進(jìn)行高維變量篩選和特征選擇(一)?Lasso回歸

01?模型簡(jiǎn)介


? ? ? ?隨著海量電子病歷的挖掘,影像學(xué)、基因組學(xué)等數(shù)據(jù)進(jìn)入醫(yī)學(xué)統(tǒng)計(jì)分析,經(jīng)常會(huì)面臨對(duì)高維變量特征選擇的問(wèn)題,Lasso回歸是在線性回歸模型的代價(jià)函數(shù)后面加上L1范數(shù)的約束項(xiàng)的模型,它通過(guò)控制參數(shù)lambda進(jìn)行變量篩選和復(fù)雜度調(diào)整,被廣泛的用到醫(yī)學(xué)領(lǐng)域。

? ? ? ?目前較好用的擬合廣義線性模型的R包是glmnet,由Lasso回歸的發(fā)明人,斯坦福統(tǒng)計(jì)學(xué)家 Trevor Hastie 領(lǐng)銜開(kāi)發(fā)。

? ? ? 下面結(jié)合一個(gè)線性回歸的例子,和大家分享一下如何運(yùn)用R軟件進(jìn)行Lasso回歸。

02?加載數(shù)據(jù)

R代碼1

03?采用glmnet() 建模

R代碼2

? ? ? ? alpha=1表示搭建Lasso回歸模型,若因變量為連續(xù)型因變量則使用family = "gaussian",若為二分類變量則使用family="binomial"。通過(guò)plot()可以做圖觀察模型的系數(shù)是如何變化的:圖中的每一條曲線代表了每一個(gè)自變量系數(shù)的變化軌跡,縱坐標(biāo)是系數(shù)值,上橫坐標(biāo)是此時(shí)模型中非零系數(shù)的個(gè)數(shù)。藍(lán)色變量隨著參數(shù)的不斷增大,而最終系數(shù)被壓縮為0的變量,說(shuō)明比較重要。

圖一

04??交叉驗(yàn)證

R代碼3

我們都會(huì)用交叉驗(yàn)證(cross validation)擬合進(jìn)而選取模型,同時(shí)對(duì)模型的性能有一個(gè)更準(zhǔn)確的估計(jì)。這里的type.measure是用來(lái)指定交叉驗(yàn)證選取模型時(shí)希望最小化的目標(biāo)參量。當(dāng)因變量是連續(xù)變量的時(shí)候,一般會(huì)采用"mse",當(dāng)因變量為二分類變量,可采用"class","deviance"等。

圖二

? ? ?我們把交叉驗(yàn)證的結(jié)果作圖,圖中紅點(diǎn)表示每個(gè)lambda對(duì)應(yīng)的目標(biāo)參量,兩條虛線表示特殊的lambda值。打印出來(lái),如下:

R代碼4

? ? ? min代表的是在所有的lambda值中,是mse最小的那一個(gè)值,1se是指在min一個(gè)方差范圍內(nèi)得到最簡(jiǎn)單模型的那一個(gè)lambda值,1se給出的是一個(gè)具備優(yōu)良性能且自變量個(gè)數(shù)最少的模型。

05?變量篩選

? ? ?獲得最優(yōu)的lambda值后,就能得到該模型的變量系數(shù)和最優(yōu)的變量??梢钥闯鲎罱K保留下來(lái)的變量是3,5,6。coef()中s是指選取的lambda值。

R代碼5

?篩選出的變量,可以結(jié)合線性回歸做下一部分的疾病危險(xiǎn)因素分析、預(yù)測(cè)分析等。

作者介紹:醫(yī)療大數(shù)據(jù)統(tǒng)計(jì)分析師,擅長(zhǎng)R語(yǔ)言。

歡迎各位關(guān)注二維碼,在后臺(tái)留言,懇請(qǐng)斧正!

圖三
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容