临床系列R包 | 第4期. 高效处理LASSO回归的利器:glmnet包

文摘   教育   2025-01-02 21:01   北京  
BE声明学写文章②



 往期回顾

   REVIEWS  


1)临床系列R包 | 第1期. 一个函数快速绘制基线表

2)临床系列R包 | 第2期. autoReg自动生成回归分析结果

3)临床系列R包 | 第3期. 探索生存分析的利器:survival包


本系列推送旨在为临床科研人提供临床研究中常用R包系统性学习分享。

在临床研究中,LASSO 回归是一种常用方法,特别适用于高维数据中筛选重要变量。glmnet 包提供了 LASSO、岭回归 和 Elastic Net 的高效实现,是处理高维数据的得力工具。


本期内容将介绍 glmnet 包 的核心功能及代码示例,帮助大家掌握该包的基本用法,轻松应对变量筛选和回归建模需求。

MASCU

R Package


本期演示数据将通过 R 语言自行模拟,帮助大家独立掌握数据处理的完整流程。




01

glmnet包的核心功能

一、glmnet包 的主要功能包括:

1、LASSO 回归:用于变量筛选和模型拟合,特别适合高维数据。

2、岭回归:通过添加惩罚项解决多重共线性问题。

3、Elastic Net:综合 LASSO 和岭回归的优点,适合复杂数据的建模。

4、交叉验证:使用 cv.glmnet() 函数实现自动化交叉验证,选择最佳 λ(惩罚系数)。





02

LASSO 回归示例


lilibrary(glmnet)  # 构建示例数据  set.seed(123)  n <- 100  # 样本数  p <- 20   # 自变量数  x <- matrix(rnorm(n * p), nrow = n, ncol = p)  # 自变量矩阵  y <- rnorm(n)  # 响应变量  # LASSO 回归  lasso_model <- glmnet(x, y, alpha = 1)  print(lasso_model)  # 可视化 LASSO 路径  plot(lasso_model, xvar = "lambda", label = TRUE)  


输出内容

  • LASSO 回归路径图:展示惩罚系数 λ 不同取值下各变量的回归系数变化。
  • 模型对象:包含 λ 序列、变量系数等信息。





03

交叉验证选择最佳 λ


交叉验证(CV)是 LASSO 回归的重要步骤,用于选择最优的惩罚系数 λ。以下代码展示如何实现:


# 使用交叉验证选择最佳 λ  cv_lasso <- cv.glmnet(x, y, alpha = 1)  # 查看最佳 λ  print(cv_lasso$lambda.min)  # 最小均方误差对应的 λ  print(cv_lasso$lambda.1se)  # 最稳定的 λ  # 可视化交叉验证结果  plot(cv_lasso)



输出内容

  • 最优 λ 值:根据均方误差(MSE)选择。

  • CV 曲线图:直观展示 λ 和模型性能的关系。




04

Elastic Net 示例


Elastic Net 结合了 LASSO 和岭回归的优点,其混合参数 α(0 ≤ α ≤ 1)决定了两者的权重。以下代码演示:


# Elastic Net 回归  elastic_model <- glmnet(x, y, alpha = 0.5)  # α = 0.5 表示 LASSO 和岭回归各占一半  # 可视化 Elastic Net 路径  plot(elastic_model, xvar = "lambda", label = TRUE)


输出内容

  • Elastic Net 路径图:展示 α = 0.5 时的系数变化情况。

  • 模型对象:包含模型参数和变量系数。




05

glmnet 包的临床应用场景


glmnet 包 在以下临床研究中具有广泛应用:

1、高维生物标志物筛选:筛选基因组、蛋白组等高维数据中的关键特征。

2、多重共线性问题解决:处理包含高度相关变量的回归模型。

3、个性化风险预测:构建精准的风险预测模型。




06

参考文档与相关指南链接


CRAN 文档:https: // cran .r - project .org /web /packages /glmnet /index. html

通过本期推送,大家可以初步掌握 glmnet 包的基本功能与应用方法。如果你有其他感兴趣的 R 包,欢迎留言告诉我们,我们将为你量身定制相关内容!



今天的分享到这里就结束啦,你学会了吗?
大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话” 栏目中提出,我们会尽快回复!

期待已久~临床科研交流群来啦!


(欢迎大家入群交流~
若群满,请添加下方微信,备注:“进临床科研与统计_互助交流群” )





写在最后


“观科研”(点击进一步了解我们吧)是由一群北京协和医学院(清华大学医学部)的博士开创的公众号,初心是让医学科研有迹可循,帮助一线的医学科研人员更快地成长,希望大家支持与关注!

如果大家对分享医学科研知识感兴趣,特别欢迎加入我们,期待与您的相遇相识相知,也非常欢迎大家自主投稿,如果您有需要分享的内容或对我们有任何建议,可通过后台留言、
公众号菜单栏
“更多—读者的话”栏目进一步了解)或发送邮件至mascu_forever@163.com与我们交流并留下个人联系方式,我们会及时与您联系。

如果您觉得我们长期的干货推送对您的科研工作有所帮助,可以在合适的机会致谢(包括但不限于SCI论文、毕业论文等),格式如下:
 The authors thank the support of Skill Learning from Kaixin Doctor and MASCU (Medical Association with Science, Creativity, and Unity), Inc, Shenzhen, China (mascu_forever@163.com).


【大家的支持,是我们持续更新的动力!】


Pay attention!
微信公众号的推送规则发生改变(不再按照时间顺序来显示),如果没有将“观科研”设置为星标,你就可能错失里面的精彩推送。


点击“在看”,可参与讨论哦!

图文:睿观

审核:美观

编辑:云观

编审:直观


观科研
让医学科研有迹可循
 最新文章