最近我们被客户要求撰写关于非凸惩罚函数回归(SCAD、MCP)的研究报告,包括一些图形和统计输出。
本文使用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. 0. 0. -0.0 0.0 0. # lcp gleason pgg45 # 0.00000000 0.00000000 0.00
该 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. * # age -0.01531 -1.788 0. * # pgg45 0.00168 1.160 0. *
在这种情况下, 即使调整了模型中的其他变量之后,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. 0. 0. -0.0 0.0 0. # lcp gleason pgg45 # -0. 0.000000000 0.00
可以通过predict来获得预测值 ,该选项有多种选择:
讯享网 predict(cvfit # 预测新观测结果的响应 # 1 2 3 4 5 6 # 0. 0. 0. 0. 1. 0. # 非零系数的数量 # 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) 。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/44344.html