曾记否,咱们一起讨论过calibration curve,也就是校准曲线,校准曲线其实是实际发生率和预测发生率的散点图。还记得Logistic回归的calibration curve怎么做吗?链接在此。预测模型好不好,看看校正曲线就知道
文章一出,有小伙伴发来贺电,同时催写COX回归calibration curve的做法,时隔半年,小编终于补上这一篇了。
今天用的还是R软件,我们先来认识下所用的示例数据。数据命名为dtSurv,包含8个变量,我们所用到的主要是:生存时间—survTime、事件状态—status、以及自变量x1、x2和grp。
首先,我们需要安装rms包,这个包也可用来做列线图。小编在使用过程中发现install.packages("rms")在安装程序包时会报错,这个时候,大家可直接在R界面手动安装。通过程序包—安装程序包—选择中国镜像—选择所需程序包。
在程序包安装之后:
library(rms)##加载程序包
s<-Surv(dtSurv$survTime,dtSurv$status,type="right")##申明为生存分析的数据,涂黄部分为生存时间,涂绿部分为事件发生与否。其中dtSurv是数据的名称,通过$美元符号连接相应的变量名。大家需要更改涂颜色的部分。
f <- cph(s~grp+x1+x2, x=TRUE, y=TRUE,surv = TRUE,time.inc=5,data=dtSurv)##拟合COX回归模型,大家需要更改涂颜色的部分,grp+x1+x2为相应的自变量,time.inc表示计算多长时间的生存率,data需要等于数据的名称。
cal<-calibrate(f,u=5,cmethod='KM',m=100)##这里的u应和time.inc保持一致。关于m,一般为50、100,和总样本量有关,calibration curve中,数据点的数目=总样本量n/m。dtSurv共计500人,m设为100,calibration curve应有数据点5个,待会可以验证下。
plot(cal,xlim = c(0,1),ylim= c(0,1),
errbar.col=c(rgb(0,0,0,maxColorValue=255)),col=c(rgb(255,0,0,maxColorValue=255)))##绘图的参数,xlim和ylim限定x和y轴的区间。errbar.col定义误差线的颜色,col定义校准曲线的颜色,颜色可参考rgb调色进行调整。
abline(0,1,lty=3,lwd=2,col=c(rgb(0,0,255,maxColorValue= 255)))##添加y=x并设置线型、粗细、颜色。最后绘制的calibration curve如下。
library(rms)
s<-Surv(dtSurv$survTime,dtSurv$status,type="right")
f <- cph(s~grp+x1+x2, x=TRUE, y=TRUE,surv = TRUE,time.inc=5,data=dtSurv)
cal<-calibrate(f,u=5,cmethod='KM',m=100)
plot(cal,xlim = c(0,1),ylim= c(0,1),
errbar.col=c(rgb(0,0,0,maxColorValue=255)),col=c(rgb(255,0,0,maxColorValue= 255)))
abline(0,1,lty =3,lwd=2,col=c(rgb(0,0,255,maxColorValue= 255)))