乐趣区

关于算法:R语言中使用非凸惩罚函数回归SCADMCP分析前列腺数据

原文链接: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 

该 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        * 

在这种状况下,即便调整了模型中的其余变量之后,lcavolsvi以及 lweight 显然与因变量关联,同时 lbphage和 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)


最受欢迎的见解

1.R 语言多元 Logistic 逻辑回归 利用案例

2. 面板平滑转移回归 (PSTR) 剖析案例实现

3.matlab 中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R 语言泊松 Poisson 回归模型剖析案例

5.R 语言回归中的 Hosmer-Lemeshow 拟合优度测验

6.r 语言中对 LASSO 回归,Ridge 岭回归和 Elastic Net 模型实现

7. 在 R 语言中实现 Logistic 逻辑回归

8.python 用线性回归预测股票价格

9.R 语言如何在生存剖析与 Cox 回归中计算 IDI,NRI 指标

退出移动版