暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据

拓端数据部落 2022-09-01
494

原文链接:http://tecdat.cn/?p=20828 


在本文中使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是_最小_最_大凹_度_惩罚_函数_(MCP)_和光滑切片绝对偏差惩罚(SCAD),以及其他L2惩罚的选项( “弹性网络”)。


相关视频


还提供了用于执行交叉验证以及拟合后可视化,摘要,推断和预测的实用程序。

我们研究 前列腺数据,它具有8个变量和一个连续因变量,即将进行根治性前列腺切除术的男性的PSA水平(按对数尺度):

 X <- data$X
y <- data$y

要将惩罚回归模型拟合到此数据,执行以下操作:

reg(X, y)


此处的默认惩罚是_最小_最_大凹_度_惩罚_函数_(MCP)_,但也可以使用SCAD和lasso惩罚。这将产生一个系数路径,我们可以绘制

plot(fit)


注意,变量一次输入一个模型,并且在λ的任何给定值下,几个系数均为零。要查看系数是多少,我们可以使用以下 coef
 函数:

 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


点击标题查阅往期内容


r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现


左右滑动查看更多


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 *


在这种情况下, 即使调整了模型中的其他变量之后,lcavol
, svi
以及 lweight
 显然与因变量关联,同时 lbph
, age
和 pgg45
 可能只是_偶然_包括。通常,为了评估模型在λ的各种值下的预测准确性,将执行交叉验证:

plot(cvfit)


使交叉验证误差最小的λ的值由 cvfit$lambda.min
给出,在这种情况下为0.017。将coef
 在return的输出 应用于 cv.ncvreg
 λ的值的系数:

 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


可以通过predict
来获得预测值 ,该选项有多种选择:

 predict(cvfit
# 预测新观测结果的响应
# 1 2 3 4 5 6
# 0.8304040 0.7650906 0.4262072 0.6230117 1.7449492 0.8449595

# 非零系数的数量
# 0.01695
# 7

# 非零系数的特性
# lcavol lweight age lbph svi lcp pgg45
# 1 2 3 4 5 6 8


请注意,原始拟合(至完整数据集)的结果为 cvfit$fit
;不必同时调用两者 ncvreg
 和 cv.ncvreg
 分析数据集。

如, plot(cvfit$fit)
 将产生与上述相同的系数路径图 plot(fit)
 。





本文摘选R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据,点击“阅读原文”获取全文完整代码、数据资料。





本文中的前列腺数据分享到会员群,扫描下面二维码即可加群!


点击标题查阅往期内容

Python中的Lasso回归之最小角算法LARS
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
R语言实现LASSO回归——自己编写LASSO回归算法
R使用LASSO回归预测股票收益
R语言如何和何时使用glmnet岭回归
R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化
R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
R语言广义线性模型(GLMs)算法和零膨胀模型分析
R语言中广义线性模型(GLM)中的分布和连接函数分析
R语言中GLM(广义线性模型),非线性和异方差可视化分析
R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分


欲获取全文文件,请点击左下角“阅读原文”。



文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论