天天看點

R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

Lease Absolute Shrinkage and Selection Operator(LASSO)在給定的模型上執行正則化和變量選擇

根據懲罰項的大小,LASSO将不太相關的預測因子縮小到(可能)零。是以,它使我們能夠考慮一個更簡明的模型。在這組練習中,我們将在R中實作LASSO回歸。

練習1

加載糖尿病資料集。這有關于糖尿病的病人水準的資料。資料為n = 442名糖尿病患者中的每個人獲得了10個基線變量、年齡、性别、體重指數、平均血壓和6個血清測量值,以及感興趣的反應,即一年後疾病進展的定量測量。"

接下來,加載包用來實作LASSO。

head(data)      

向下滑動檢視結果▼

練習2

資料集有三個矩陣x、x2和y。x是較小的自變量集,而x2包含完整的自變量集以及二次和互動項。

檢查每個預測因素與因變量的關系。生成單獨的散點圖,所有預測因子的最佳拟合線在x中,y在縱軸上。用一個循環來自動完成這個過程。

summary(x)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料
for(i in 1:10){
  plot(x[,i], y)
  abline(lm(y~x[,i])
}      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

01

R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

02

R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

03

R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

04

R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

練習3

使用OLS将y與x中的預測因子進行回歸。我們将用這個結果作為比較的基準。

lm(y ~ x)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

向下滑動檢視結果▼

練習4

繪制x的每個變量系數與β向量的L1準則的路徑。該圖表明每個系數在哪個階段縮減為零。

plot(model_lasso)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

向下滑動檢視結果▼

練習5

得到交叉驗證曲線和最小化平均交叉驗證誤差的lambda的值。

plot(cv_fit)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

向下滑動檢視結果▼

練習6

使用上一個練習中的lambda的最小值,得到估計的β矩陣。注意,有些系數已經縮減為零。這表明哪些預測因子在解釋y的變化方面是重要的。

> fit$beta      

向下滑動檢視結果▼

練習7

為了得到一個更簡明的模型,我們可以使用一個更高的λ值,即在最小值的一個标準誤差之内。用這個lambda值來得到β系數。注意,現在有更多的系數被縮減為零。

lambda.1se      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料
beta      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

向下滑動檢視結果▼

練習8

如前所述,x2包含更多的預測因子。使用OLS,将y回歸到x2,并評估結果。

summary(ols2)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

向下滑動檢視結果▼

練習9

對新模型重複練習-4。

lasso(x2, y)plot(model_lasso1)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料

向下滑動檢視結果▼

練習10

對新模型重複練習5和6,看看哪些系數被縮減為零。當有很多候選變量時,這是縮小重要預測變量的有效方法。

plot(cv_fit1)      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料
beta      
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料
R語言Lasso回歸模型變量選擇和糖尿病發展預測模型|附代碼資料