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

在这种情况下, 即使调整了模型中的其他变量之后,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) 。


点击标题查阅往期内容

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,梯度增强,随机森林和深度学习模型分析

更多内容,请点击左下角“阅读原文”查看报告全文

关注我们

案例精选、技术干货 第一时间与您分享

长按二维码加关注

更多内容,请点击左下角“阅读原文”查看报告全文

R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据相关推荐

  1. R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe、按照多列对数据进行全连接

    R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe.按照多列对数据进行全连接 目录

  2. R语言中如何编写自己的函数初步入门

    一.循环与控制 循环: for(i in 1:10) print("hello world") i<-10 while(i>0){ print(i); i<-i- ...

  3. R语言hdnom包进行高维惩罚 Cox 回归模型绘制列线图-校准曲线-时间依赖ROC-外部验证

    Hdnom包可以用于用于给高维数据构建Cox 模型.绘制列线图-校准曲线-时间依赖ROC-外部验证,而且Hdnom包简化了建模过程,带有自动选择变量功能,将用户从繁琐且容易出错的调参过程中解放出来. ...

  4. 在R语言中进行局部多项式回归拟合(LOESS)

    局部多项式回归拟合是对两维散点图进行平滑的常用方法,它结合了传统线性回归的简洁性和非线性回归的灵活性.当要估计某个响应变量值时,先从其预测变量附近取一个数据子集,然后对该子集进行线性回归或二次回归,回 ...

  5. 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法

    这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...

  6. R语言中作图的一些基本代码

    文章目录 利用par()函数设置公共绘图参数(重点) 在已有的plot图像中如何添加线条 做出三维表面图 控制坐标轴显示的区域 在指定坐标中做注释 标题和xy的标签 标题中的字体 通过title()对 ...

  7. 数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化...

    全文链接:http://tecdat.cn/?p=22262 在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量)(点击文末"阅读原文"获取完整代码数据). 但在实际生活中 ...

  8. R语言ggplot2可视化:使用geom_line函数将dataframe中数据可视化为时间序列(或折线图)(Time Series Plot From a Data Frame)、添加标题、副标题

    R语言ggplot2可视化:使用geom_line函数将dataframe中数据可视化为时间序列(或折线图)(Time Series Plot From a Data Frame).添加标题.副标题. ...

  9. R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行YeoJohnson变换(将非正态分布数据列转换为正态分布数据、可以处理负数)、设置参数为YeoJohnson

    R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行YeoJohnson变换(将非正态分布数据列转换为正态分布数据.可以处理负数).设置method参数为YeoJohns ...

最新文章

  1. 最大功率28W,高通新一代快充技术QC4.0曝光
  2. 【Android 修炼手册】Gradle 篇 -- Gradle 源码分析
  3. 四天人工智能 python入门体验课_百度深度学习7天打卡营,用Python+AI识别“青你2”小姐姐的高颜值...
  4. springboot 参数校验详解
  5. C#在Linux上的开发指南
  6. 关于windows10 CMD 的一些操作
  7. 哈工大等提出轻量级盲超分辨模型LESRCNN,代码已开源
  8. 如何系统地自学前端(女生),女生发展前端是否是青春饭?
  9. ubuntu的无比注意事项
  10. kmem_cache_alloc核心函数slab_alloc_node的实现详解
  11. Microsoft.AspNet.Identity 的简单使用
  12. Adobe Acrobat 虚拟打印机安装方法(无法找到Adobe PDF资源文件)
  13. 使用makefile生成.so文件
  14. 谷歌翻译 翻译文档爬虫
  15. 用python算股票β系数_利用 Python 计算资产 beta 值和市场 beta 值
  16. 干货|遗传+禁忌混合算法(HA)算法求解柔性作业车间调度问题(FJSP)附java代码-第一部分
  17. Python自动化小米手环运动数据导出
  18. 数字地、模拟地、信号地区分
  19. 一个大牛的acm历程(看着就要颤抖
  20. 菜鸟窝Android百度云视频,菜鸟窝React Native 视频系列教程

热门文章

  1. 基于中值滤波与小波变换的图像去噪声实现
  2. ClickHouse 相关博客
  3. 2021-2027全球与中国客运机场市场现状及未来发展趋势
  4. Android 实现USB转串口通信
  5. Excel催化剂开源第25波-Excel调用百度AI,返回AI结果
  6. 近年GDC服务器分享合集(二): 《太空工程师》中基于预测物理的多人游戏
  7. 讯飞小车比赛语音控制(基础)
  8. NLP常用库安装(一)genism,nltk
  9. 【无标题】2022年压力管道巡检维护试题及在线模拟考试
  10. Excel(合并问题)------- ValueError: Can only compare identically-labeled Series objects 问题解决