如何使用Survminer包优雅的绘制生存曲线?

科研菌
关注

引言:

   生存分析是临床上较为常用的统计学方法,用于比较不同组别的患者在接受干预之后,生存时间的变化情况。生存分析是医学领域中一个重要的内容,在各个疾病领域的研究中都运用十分广泛。在R中进行生存分析常用的包主要有survival包以及survminer包。

Survival 包提供了生存函数的建立,Cox模型的建立,以及比较分析。这个包也提供了基于基础绘图系统的生存曲线绘制。Survminer包提供了基于ggplot2系统对于生存分析的可视化,使得生存分析具有更加美观的图形,以及自我定制方式。

而今天我们的主角就是Survminer包,让我们鼓足精神一起来学习“如何使用Survminer包优雅的绘制生存曲线”吧。

1.Survminer包主要函数介绍

#该包包含的主要函数有:

主要函数用法ggsurvplot ()利用'number at risk'表,事件表的累计数量和被过滤的主体表的累计数绘制生存曲线arrange_ggsurvplots ()在同一页面上排列多个ggsurvplotsggsurvevents ()绘制事件的时间分布surv_summary ()生存曲线总结,默认的summary ()函数相比,surv_summary ()创建一个数据帧,其中包含来自survfit结果的漂亮摘要surv_cutpoint ()一次确定一个或多个连续变量的最佳切点,提供与生存最显著关系对应的一个切点的值。pairwise_survdiff ()生存曲线的多重比较,计算分组级别之间的配对比较,以及多个测试的更正ggcoxzph ()比例危害的图形测试,显示缩放的Schoenfeld残差图,以及使用ggplot2的平滑曲线,plot.cox.zph()的包装器ggcoxdiagnostics ()显示诊断图表显示cr比例危险模型的良好ggcoxfunctional ()显示关于零cox比例危险模型鞅残差的连续解释变量的图,cox模型中连续变量的函数形式的正确选取ggforest ()绘制CoxPH模型的forest plotggcoxadjustedcurves ()绘制coxph模型的调整生存曲线ggcompetingrisks ()绘制竞争风险的累积关联曲线

        在以上众多函数中,ggsurvplot ()函数和ggcoxzph ()函数是生存分析中应用最多的函数,arrange_ggsurvplots ()函数是让多个 ggsurvplots作图生存曲线合并。今天我们也将主要讲解这三个函数。(如果需要其他函数的学习,请自行查阅 Survminer包说明文档)

2.主要函数ggsurvplot()

2.1 用法:

ggsurvplot(fit, data = NULL, fun = NULL, color = NULL,     palette = NULL, linetype = 1, conf.int = FALSE, pval = FALSE,     pval.method = FALSE, test.for.trend = FALSE,     surv.median.line = "none", risk.table = FALSE, cumevents = FALSE,     cumcensor = FALSE, tables.height = 0.25, group.by = NULL,     facet.by = NULL, add.all = FALSE, combine = FALSE,     ggtheme = theme_survminer(), tables.theme = ggtheme, ...)

2.2 主要参数详解:

参数用法fit需要画的生存曲线对象,可以是拟合好的生存对象,也可以是包含生存信息的数据框、列表data用来拟合生存曲线的数据集,如果未提供,则将从“fit”对象中提取数据fun定义生存曲线变换的任意函数。event:f(y) = 1-y;cumhaz:f(y) =-log(y);pct:生存率百分比color绘制生存曲线的颜色设置,可使用调色板palette使用调色板linetype改变线条类型conf.int逻辑值,如果为TRUE,则绘制置信区间pval逻辑中,如果为TRUE,则绘制p值pval.method是否添加一个文本,其中包含用于计算pvalue的检验名称,该文本对应于生存曲线的比较。仅在pval=TRUE时使用test.for.trend逻辑值,默认为FALSE,如果是TRUE,返回p值的趋势检测surv.median.line用于在中间生存点绘制水平/垂直线的字符向量,可选择的值包括c("none","hv","h","v")中的一个,其中v:垂直,h:水平risk.table显示绝对数量和风险个体的百分比cumevents指定是否显示累计事件数表的逻辑值,默认值为FALSEcumcensor逻辑值,指定是否显示审查累计次数的表,默认值为FALSEtables.height数值(在[0-1]中),指定主生存图下所有表的一般高度add.all逻辑值如果为真,则将合并患者的生存曲线(空模型)添加到主图中combine逻辑值如果为TRUE,则在同一绘图上合并列表survfit对象2.3 示例:

#首先,安装并加载包,直接在R中安装即可

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

#示例数据选用R语言中非常出名的lung数据集

#查看数据组成View(lung)

#表中数据解释:

time:患者生存时间,单位是days?status:患者结局,1表示删失,2表示死亡 其余变量:自变量,比如:age表示年龄,sex表示性别等等

#然后,使用该数据拟合生存曲线 (这里使用Survival包,具体生存分析的方法可以查看Survival包学习文档)

fit<- survfit(Surv(time, status) ~ sex, data = lung)

#构建好fit对象后,开始画图

#默认参数画图ggsurvplot(fit, data = lung)

# 添加中位生存ggsurvplot(fit, data = lung,           surv.median.line = "hv")

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存