R語(yǔ)言用非凸懲罰函數(shù)回歸(SCAD、MCP)分析前列腺數(shù)據(jù)|附代碼數(shù)據(jù)
使用lasso或非凸懲罰擬合線性回歸,GLM和Cox回歸模型的正則化,特別是_最小_最_大凹_度_懲罰_函數(shù)_(MCP)_和光滑切片絕對(duì)偏差懲罰(SCAD),以及其他L2懲罰的選項(xiàng)( “彈性網(wǎng)絡(luò)”)
還提供了用于執(zhí)行交叉驗(yàn)證以及擬合后可視化,摘要,推斷和預(yù)測(cè)的實(shí)用程序。
我們研究?前列腺數(shù)據(jù),它具有8個(gè)變量和一個(gè)連續(xù)因變量,即將進(jìn)行根治性前列腺切除術(shù)的男性的PSA水平(按對(duì)數(shù)尺度):
X <- data$Xy <- data$y
要將懲罰回歸模型擬合到此數(shù)據(jù),執(zhí)行以下操作:
reg(X, y)
此處的默認(rèn)懲罰是_最小_最_大凹_度_懲罰_函數(shù)_(MCP)_,但也可以使用SCAD和lasso懲罰。這將產(chǎn)生一個(gè)系數(shù)路徑,我們可以繪制
plot(fit)

注意,變量一次輸入一個(gè)模型,并且在λ的任何給定值下,幾個(gè)系數(shù)均為零。要查看系數(shù)是多少,我們可以使用以下?coef
?函數(shù):
coef(fit, lambda=0.05)# (Intercept) ? ? ?lcavol ? ? lweight ? ? ? ? age ? ? ? ?lbph ? ? ? ? svi # ?0.35121089 ?0.53178994 ?0.60389694 -0.01530917 ?0.08874563 ?0.67256096 # ? ? ? ? lcp ? ? gleason ? ? ? pgg45 # ?0.00000000 ?0.00000000 ?0.00168038
點(diǎn)擊標(biāo)題查閱往期內(nèi)容

r語(yǔ)言中對(duì)LASSO回歸,Ridge嶺回歸和彈性網(wǎng)絡(luò)Elastic Net模型實(shí)現(xiàn)

左右滑動(dòng)查看更多

01

02

03

04

該?summary
?方法可用于后_選擇推斷_:
summary(fit # MCP-penalized linear regression with n=97, p=8# At lambda=0.0500:# -------------------------------------------------# ? Nonzero coefficients ? ? ? ? : ? 6# ? Expected nonzero coefficients: ? 2.54# ? Average mfdr (6 features) ? ?: ? 0.424# # ? ? ? ? Estimate ? ? ?z ? ? mfdr Selected# lcavol ? 0.53179 ?8.880 ?< 1e-04 ? ? ? ?*# svi ? ? ?0.67256 ?3.945 0.010189 ? ? ? ?*# lweight ?0.60390 ?3.666 0.027894 ? ? ? ?*# lbph ? ? 0.08875 ?1.928 0.773014 ? ? ? ?*# age ? ? -0.01531 -1.788 0.815269 ? ? ? ?*# pgg45 ? ?0.00168 ?1.160 0.917570 ? ? ? ?*
在這種情況下,?即使調(diào)整了模型中的其他變量之后,lcavol
,?svi
以及?lweight
?顯然與因變量關(guān)聯(lián),同時(shí)?lbph
,?age
和?pgg45
?可能只是_偶然_包括。通常,為了評(píng)估模型在λ的各種值下的預(yù)測(cè)準(zhǔn)確性,將執(zhí)行交叉驗(yàn)證:
plot(cvfit)

使交叉驗(yàn)證誤差最小的λ的值由?cvfit$lambda.min
給出,在這種情況下為0.017。將coef
?在return的輸出?應(yīng)用于?cv.ncvreg
?λ的值的系數(shù):
coef # ?(Intercept) ? ? ? lcavol ? ? ?lweight ? ? ? ? ?age ? ? ? ? lbph ? ? ? ? ?svi # ?0.494154801 ?0.569546027 ?0.614419811 -0.020913467 ?0.097352536 ?0.752397339 # ? ? ? ? ?lcp ? ? ?gleason ? ? ? ?pgg45 # -0.104959403 ?0.000000000 ?0.005324465
可以通過(guò)predict
來(lái)獲得預(yù)測(cè)值?,該選項(xiàng)有多種選擇:
predict(cvfit# 預(yù)測(cè)新觀測(cè)結(jié)果的響應(yīng)# ? ? ? ? 1 ? ? ? ? 2 ? ? ? ? 3 ? ? ? ? 4 ? ? ? ? 5 ? ? ? ? 6 # 0.8304040 0.7650906 0.4262072 0.6230117 1.7449492 0.8449595 # 非零系數(shù)的數(shù)量# 0.01695 # ? ? ? 7 # 非零系數(shù)的特性# ?lcavol lweight ? ? age ? ?lbph ? ? svi ? ? lcp ? pgg45 # ? ? ? 1 ? ? ? 2 ? ? ? 3 ? ? ? 4 ? ? ? 5 ? ? ? 6 ? ? ? 8
請(qǐng)注意,原始擬合(至完整數(shù)據(jù)集)的結(jié)果為?cvfit$fit
;不必同時(shí)調(diào)用兩者?ncvreg
?和?cv.ncvreg
?分析數(shù)據(jù)集。
如,?plot(cvfit$fit)
?將產(chǎn)生與上述相同的系數(shù)路徑圖?plot(fit)
?。

本文摘選?《?R語(yǔ)言中使用非凸懲罰函數(shù)回歸(SCAD、MCP)分析前列腺數(shù)據(jù)?》?,點(diǎn)擊“閱讀原文”獲取全文完整代碼、數(shù)據(jù)資料。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容
Python中的Lasso回歸之最小角算法LARS
r語(yǔ)言中對(duì)LASSO回歸,Ridge嶺回歸和彈性網(wǎng)絡(luò)Elastic Net模型實(shí)現(xiàn)
R語(yǔ)言實(shí)現(xiàn)LASSO回歸——自己編寫LASSO回歸算法
R使用LASSO回歸預(yù)測(cè)股票收益
R語(yǔ)言如何和何時(shí)使用glmnet嶺回歸
R語(yǔ)言中的嶺回歸、套索回歸、主成分回歸:線性模型選擇和正則化
R語(yǔ)言廣義線性模型GLM、多項(xiàng)式回歸和廣義可加模型GAM預(yù)測(cè)泰坦尼克號(hào)幸存者
R語(yǔ)言用Rshiny探索lme4廣義線性混合模型(GLMM)和線性混合模型(LMM)
R語(yǔ)言使用bootstrap和增量法計(jì)算廣義線性模型(GLM)預(yù)測(cè)置信區(qū)間
R語(yǔ)言廣義線性模型(GLMs)算法和零膨脹模型分析
R語(yǔ)言中廣義線性模型(GLM)中的分布和連接函數(shù)分析
R語(yǔ)言中GLM(廣義線性模型),非線性和異方差可視化分析
R語(yǔ)言中的廣義線性模型(GLM)和廣義相加模型(GAM):多元(平滑)回歸分析保險(xiǎn)資金投資組合信用風(fēng)險(xiǎn)敞口
R和Python機(jī)器學(xué)習(xí):廣義線性回歸glm,樣條glm,梯度增強(qiáng),隨機(jī)森林和深度學(xué)習(xí)模型分