备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 生信修炼手册 用R语言进行KM生存分析
1 0

海报分享

用R语言进行KM生存分析

R是数据分析常用的软件之一,通过各种功能强大的R包,可以简单方便的实现各种分析。在R语言中,能够进行生存分析的R包很多,survival和survminer是其中最基本的两个,survival负责分析,survimner负责可视化,二者相结合,可以轻松实现生存分析。具体过程如下

1. 准备生存数据

对于每个个体而言,其生存数据会出现两种情况,第一种是观测到生存时间,通常用1表示,第二种则是删失。通常用0表示。survival自带了一个测试数据 lung , 内容如下所示

每一行代表一个样本, time 表示生存时间, status 表示删失情况,这里只有1和2两种取值,默认排序后的第一个level对应的值为删失,这里则为1表示删失。其他列为样本对应的性别,年龄等基本信息。

2. 进行生存分析

这里根据性别这个二分类变量,采用KM算法来估计生存曲线,代码如下

fit 中提取结果构成了 d 这个数据框,可以看到已经包含了每个时间点的生存概率,删失等信息,通过这些信息,完全可以自己写代码来画图。为了方便,我们直接采用 survminer 中的函数来进行可视化。

3. 分析结果的可视化

最基本的可视化方式如下

library("survminer")
ggsurvplot(fit)

效果图如下所示

两条不同颜色的折线代表不用性别的生存曲线。对于两组生存数据,通常都需要比较二者之间是否具有差异,最常用的算法是log-rank test。survminer在可视化结果时,也支持进行差异检验,并将对应的p值标记在图上,代码如下

ggsurvplot(fit, pval = TRUE)

效果图如下

上图中的p值小于0.05,说明不同性别的生存曲线存在显著差异。除了这些基本功能外,该函数还有多个参数,可以灵活的展示结果,比如添加置信区间,代码如下

ggsurvplot(fit, pval = TRUE, conf.int = TRUE)

效果图如下

也支持标记生存时间的中位数,代码如下

ggsurvplot(fit, pval = TRUE, conf.int = TRUE, surv.median.line = "hv")

效果图如下

该函数还有非常多的参数,可以非常个性化的调整可视化结果,更加详细的参数用法请参考官方的帮助文档。

文章分享自微信公众号:
生信修炼手册

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

原始发表时间: 2019-06-27
如有侵权,请联系 cloudcommunity@tencent.com 删除。