用R语言进行KM生存分析

欢迎关注”生信修炼手册”!

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

1. 准备生存数据

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

用R语言进行KM生存分析_第1张图片

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

2. 进行生存分析

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

用R语言进行KM生存分析_第2张图片

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

3. 分析结果的可视化

最基本的可视化方式如下

library("survminer")
ggsurvplot(fit)

效果图如下所示

用R语言进行KM生存分析_第3张图片

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

ggsurvplot(fit, pval = TRUE)

效果图如下

用R语言进行KM生存分析_第4张图片

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

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

效果图如下

用R语言进行KM生存分析_第5张图片

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

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

效果图如下

用R语言进行KM生存分析_第6张图片

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

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

你可能感兴趣的:(用R语言进行KM生存分析)