全文下载链接:http://tecdat.cn/?p=20828

最近咱们被客户要求撰写对于非凸惩办函数回归的钻研报告,包含一些图形和统计输入。

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

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

咱们钻研 前列腺数据,它具备8个变量和一个间断因变量,行将进行根治性前列腺切除术的男性的PSA程度(按对数尺度):

 X <- data$Xy <- 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,梯度加强,随机森林和深度学习模型分