上海股票分析联盟

R软件学习系列:K-M曲线的绘制

实用Meta分析 2018-06-20 09:26:56

我们发现大家学习R软件的热情越来越高涨,“实用meta分析”为大家整理了一系列R软件操作教程。今天,跟大家分享的是R软件绘制K-M生存曲线


首先,我们来简单的了解一下生存分析

生存分析,是既考虑结果又考虑生存时间的一种统计方法,可充分利用尾数据所提供的不完全信息,对生存时间的分布特征进行描述,对影响生存时间的主要因素进行分析。


常用Kaplan-Meier法和寿命表法估计生存函数,也可用这两种方法对生存函数进行组间比较;另外,可以用Cox回归模型,评价其它影响因素对生存函数分布的影响程度。


R中,关于生存分析的有个重要的数据包,分别是"survival","survminer"其中survival是进行相关的分析,survminer是绘制图形。如果利用R软件实现K-M 生存分析呢?


首先要安装和加载软件包(install.packages(c("survival","survminer")),


虽然,依次运行以下代码:

library("survival"), library("survminer"))

data("kidney")

sur<-survfit(Surv(time,status)~sex,data=kidney)

summary(sur)$table

#我们将使用生存包中提供的Kidney catheter数据先看一下具体的结果,采用函数survfit计算生存曲线,按性别来计算生存概率。


K-M曲线绘制

ggsurvplot(sur)

#使用函数ggsurvplot()(在survminer软件包中)来生成两组受试者的生存曲线。

1简单的K-M曲线


ggsurvplot(sur, conf.int = TRUE,risk.table=T)

##我们需要对我们的图形进行调整,参数conf.int = TRUE的幸存函数的95置信区间;使用risk.table的风险个体的数量risk.table指定是否显示风险表的TRUEFALSE默认值是FALSE。


ggsurvplot(sur, conf.int = TRUE,risk.table=T, pval = TRUE, surv.median.line="hv")

#Kaplan-Meier计算的p默认不在图中显示使用pval = TRUE可以呈现到图中surv.median.line表示绘制中位生存时间,其中hv表示同时绘制横坐标和纵坐标,hv分别代表绘制与横纵坐标平行的直线,默认不显示。


ggsurvplot(sur, conf.int = TRUE,risk.table=T,pval = TRUE,break.time.by = 90)

#break.time.by = 90在时间间隔中将x90(90的倍数)处标识标签,图1中,软件默认的是在200400处设置标签,本数据集默认为break.time.by = 200,不同的数据集默认值并不一致,但是在生存分析中,为了表示方便一般会已月数的整数或者年数表示。


ggsurvplot(sur, conf.int = TRUE,risk.table=T, legend.title = "Sex", legend.labs = c("Male", "Female"))

#通过legend的相关参数修改图例。


ggsurvplot(sur, conf.int = TRUE, risk.table="abs_pct", surv.median.line="hv", legend.title = "Sex", legend.labs = c("Male", "Female"), pval = TRUE,break.time.by = 90, ggtheme = theme_bw(), xlim=c(0,270))

#xlim定义x轴的范围其中其中ylim可以定义y轴范围,一般是0-1risk.table="abs_pct"同时显示人数和百分比,具体的图形如图2所示。


2 修改的K-M曲线


最后,我们对K-M曲线的运行程序总结如下:

data("kidney")

sur<-survfit(Surv(time,status)~sex,data=kidney)

summary(sur)$table

ggsurvplot(sur, conf.int = TRUE, risk.table="abs_pct", surv.median.line="hv", legend.title = "Sex", legend.labs = c("Male", "Female"), pval = TRUE,break.time.by = 90,ggtheme = theme_bw(), xlim=c(0,270))


本次分享就到这里,如果你也希望跟大家分享有趣、实用的学习经验,第一时间给我们投稿吧


Copyright ? 上海股票分析联盟@2017