拓端tecdat|R語言Lasso回歸模型變量選擇和糖尿病發(fā)展預測模型應用(含練習)
原文鏈接:http://tecdat.cn/?p=22721?
原文出處:拓端數(shù)據(jù)部落公眾號
Lease Absolute Shrinkage and Selection Operator(LASSO)在給定的模型上執(zhí)行正則化和變量選擇。根據(jù)懲罰項的大小,LASSO將不太相關的預測因子縮小到(可能)零。因此,它使我們能夠考慮一個更簡明的模型。在這組練習中,我們將在R中實現(xiàn)LASSO回歸。
?
練習1
加載糖尿病數(shù)據(jù)集。這有關于糖尿病的病人水平的數(shù)據(jù)。數(shù)據(jù)為n = 442名糖尿病患者中的每個人獲得了10個基線變量、年齡、性別、體重指數(shù)、平均血壓和6個血清測量值,以及感興趣的反應,即一年后疾病進展的定量測量。"
接下來,加載包用來實現(xiàn)LASSO。
head(data)

練習2
數(shù)據(jù)集有三個矩陣x、x2和y。x是較小的自變量集,而x2包含完整的自變量集以及二次和交互項。
檢查每個預測因素與因變量的關系。生成單獨的散點圖,所有預測因子的最佳擬合線在x中,y在縱軸上。用一個循環(huán)來自動完成這個過程。
?
summary(x)

for(i in 1:10){
plot(x[,i], y)
abline(lm(y~x[,i])
}
?

練習3
使用OLS將y與x中的預測因子進行回歸。我們將用這個結果作為比較的基準。
lm(y ~ x)
?

練習4
繪制x的每個變量系數(shù)與β向量的L1準則的路徑。該圖表明每個系數(shù)在哪個階段縮減為零。
plot(model_lasso)

練習5
得到交叉驗證曲線和最小化平均交叉驗證誤差的lambda的值。
plot(cv_fit)


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

練習7
為了得到一個更簡明的模型,我們可以使用一個更高的λ值,即在最小值的一個標準誤差之內。用這個lambda值來得到β系數(shù)。注意,現(xiàn)在有更多的系數(shù)被縮減為零。
lambda.1se
?

beta

練習8
如前所述,x2包含更多的預測因子。使用OLS,將y回歸到x2,并評估結果。
summary(ols2)
?


練習9
對新模型重復練習-4。
lasso(x2, y)
plot(model_lasso1)
?

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

beta
?



最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應用案例
2.面板平滑轉移回歸(PSTR)分析案例實現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現(xiàn)
7.在R語言中實現(xiàn)Logistic邏輯回歸
8.python用線性回歸預測股票價格
9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標