如何用R语言绘制Kaplan-Meier生存曲线(附全套代码)

生存分析(survival analysis)是生物医学研究中常用的分析方法。在队列随访研究中,我们会事先定义一些观察终点,比如肿瘤复发、患者死亡、血压达标等,这些终点称为事件(event)。从研究开始到发生事件的时间间隔称为生存时间(survival time),某些场景下也称为失效时间(failure time)。由于生存时间数据具有以下两个特点,所以提出生存分析这一特殊的分析方法。

SPSS就可以完成K-M曲线的绘制,郑老师的30天公益SPSS课程中就有讲解,但是图形结果较为死板。这里将通过R语言进行K-M绘制,并详细介绍代码的含义与作用,结果会更加美观,细节调整也更灵活。此外将介绍一种更加快捷简便的绘制流程,对R语言新手小白或希望更加便捷完成统计分析工作的读者十分友好!

主要内容包括:

一、案例介绍

二、利用R语言绘制

三、利用在线网站绘制

四、小结

一、文献解读

实操数据是从seer公共数据库提取的,包括1101名2004-2018诊断的老年恶性骨肿瘤患者的临床病理数据。暴露因素包括年龄、种族、性别、诊断年份、组织学类型、分级、分期、原发位置、TNM分期、肿瘤大小、是否化疗、是否放疗及手术方式。

这里绘制Kaplan-Meier(K-M)曲线的目的是为了比较不同手术方式下,患者的生存差异

df226de1320d87c3eecf8b2f9ee54e0f.png

二、利用R语言绘制

1.安装加载R包并导入数据

绘制K-M曲线主要用到"survival""survminer"两个包,"readxl"包仅在导入xlsx形式数据集时用到。

install.packages("survival")
install.packages("survminer")


library(survival)
library(survminer)
library(readxl)


raw<- read_excel("seer.xlsx")

2.绘制K-M曲线

在survival包中使用surv()函数创建生存对象,生存对象是将事件时间和删失信息合并在一起的数据结构,survfit()函数用来拟合生存曲线。

ggsurvplot()函数用于绘制K-M曲线,详细代码解读在下方进行了标注。

fit_Surgery <- survfit(Surv(months,status) ~ Surgery,data = raw) 
ggsurvplot(fit_Surgery, 
           data = raw, 
           pval.method=T,#添加计算p值的统计方法
           pval = TRUE,#添加P值
           risk.table = TRUE,#添加风险表
           xlab = "Follow up time(Months)",
           legend = c(0.8,0.15), #指定风险表图例位置
           break.x.by = 12) #设置X轴刻度间距

R语言绘制的曲线如下图所示:

9c16e7bb4755b5160d5d277d547d6712.png

三、利用在线网站绘制

1.进入风暴统计网站

首先电脑端使用浏览器打开网址“www.medsta.cn”,进入风暴统计平台,然后进入风暴智能统计模块——生存分析——生存分析全套。

4c314e6eff7b67d3efcade1696b40562.png

2.导入数据

目前网站支持导入10M以内的csv数据或xlsx数据。

06aa2fc785c90be51755964240da4c2f.png

3.绘制K-M曲线

进入“生存曲线”模块,将生存时间、生存结局、分组变量分别选入就可以在右侧得出基础版K-M曲线图。

4a95d8f45676732119d5add6b7c9d075.png

最左侧的“生存曲线图常用设置”可以对图形进行进一步的美化

①“生存曲线配色方案”提供了9种配色供大家选择,满足不同需求。

P值大小x轴刻度间隔风险表高度及字体大小也可以快速调整,省去代码的烦恼

③“中位生存时间”可以在图中用虚线标注出各组的中位生存时间,由于本案例中仅两组达到了50%的生存率,因此图中仅显示了两条曲线,“hv”同时显示x轴和y轴虚线,“h”仅显示y轴虚线,“v”仅显示x轴虚线。

④还可以自行更改x轴标题及3种图形要素(曲线置信区间、风险表、删失图

4c6ecee60cbfe43b5704f7206f5ce04a.png

4.下载保存曲线图

在网站页面显示的图形不完整,字都挤在一起?不要着急,网站支持PDF或PNG格式的图片,下载完成后,图片十分的完整清晰,简直超便捷!

61f0d500be63aa084ee32a62bfc907fc.png

风暴统计网站绘制的K-M曲线图:

2ec4ee05363eb8c8f67a7b09f22fb35e.png

四、小结

风暴统计平台是以R代码为基础进行搭建的便捷统计平台,因此结果的准确性大家可以放心,此外,不需要任何代码基础,小白也可以轻松完成,各种细节调整设置满足大家的个性化需求,感兴趣的各位不妨花几分钟试试看?

c5b0da355f2ef6d35a9c419d956454e8.png

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值