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

文摘   教育   2024-12-18 21:13   北京  
BE声明学写文章②



 往期回顾

   REVIEWS  


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

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


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


在临床研究中,生存分析是一种用于评估时间至事件(如死亡、复发或入院等)数据的重要统计工具。survival  作为 R 语言中最经典的生存分析工具,提供了构建 Kaplan-Meier 曲线Cox比例风险模型 和 生存时间数据可视化 的一整套方法。


本期内容将介绍 survival 包的核心功能及代码示例,帮助大家快速掌握生存分析方法,灵活应用于临床研究中。

MASCU

R Package


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




01

survival包的核心功能


(1)Kaplan-Meier 生存曲线

用于描述不同组间的生存概率随时间的变化情况。

(2)Cox比例风险模型(Cox-PH

探讨协变量(如年龄、BMI)对生存时间的影响,评估其风险比(HR)。

(3)Log-rank检验

比较两组或多组间的生存曲线差异是否具有统计学显著性。

(4)生存时间数据可视化

借助 ggsurvplot() 函数等工具,实现高质量的生存曲线图。





02

Kaplan-Meier生存曲线示例


Kaplan-Meier 生存曲线是最基础的生存分析方法,用于估计不同组别的生存概率。以下代码展示了如何利用 survfit() 函数绘制生存曲线:


library(survival)  library(survminer)  
# 构建示例数据 set.seed(123) survival_data <- data.frame( time = round(rexp(200, rate = 0.1), 1), status = sample(0:1, 200, replace = TRUE), group = sample(c("Treatment", "Control"), 200, replace = TRUE), age = round(runif(200, 30, 80)), sex = sample(c("Male", "Female"), 200, replace = TRUE) )
# Kaplan-Meier生存曲线 km_fit <- survfit(Surv(time, status) ~ group, data = survival_data)
# 绘制生存曲线 ggsurvplot(km_fit, data = survival_data, risk.table = TRUE, pval = TRUE, xlab = "Time (months)", ylab = "Survival Probability", legend.title = "Group")


输出内容

  • 生存曲线图(不同组别曲线一目了然)

  • 风险表(展示每时间点的风险人数)

  • P值(比较组间差异是否显著)





03

Cox比例风险模型示例


Cox比例风险模型是生存分析中的核心模型,可以探讨协变量对生存时间的影响,并输出 风险比(HR。以下代码展示了如何实现 Cox-PH 模型分析:


# 构建Cox比例风险模型  cox_model <- coxph(Surv(time, status) ~ group, data = survival_data)  
# 模型结果 summary(cox_model)
# 可视化模型结果 ggsurvplot(survfit(cox_model), data = survival_data, xlab = "Time (months)", ylab = "Survival Probability")


输出内容

  • HR(风险比) 和 95%置信区

  • 统计学显著性(P值)

  • 可视化的生存曲线




04

Log-rank检验示例


Log-rank检验用于比较两组或多组的生存曲线差异是否显著。以下是示例代码:


# Log-rank检验  survdiff_result <- survdiff(Surv(time, status) ~ group, data = survival_data)  print(survdiff_result)


输出内容

  • 卡方统计量和 P值

  • 判断不同组别之间的生存曲线是否有显著差异




05

多变量Cox回归模型



在实际研究中,常常需要同时调整多个协变量的影响。以下是多变量 Cox-PH 模型的示例:


# 多变量Cox回归  cox_multivariable <- coxph(Surv(time, status) ~ group + age + sex, data = survival_data)  summary(cox_multivariable)  
# 可视化HR ggforest(cox_multivariable, data = survival_data)


输出内容

  • 每个协变量的 HR95%CI P

  • 森林图可视化结果




06

参考文档与相关指南链接


https://cran.r- project .org/ web/ packages /survival / index. html


survival  是临床研究中必不可少的工具,它为时间至事件数据提供了强大的分析和可视化功能。通过本期推送,大家可以初步掌握生存分析的基本方法与代码应用,助力临床科研成果的高效输出!


希望本期内容帮助大家掌握 survival 包的生存分析技巧!欢迎留言告诉我们你想学习的其他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!
微信公众号的推送规则发生改变(不再按照时间顺序来显示),如果没有将“观科研”设置为星标,你就可能错失里面的精彩推送。


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

图文:睿观

审核:美观

编辑:云观

编审:静观


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