当前位置: > 热传

时间依赖的AUC折线图怎么画?小白看完都能学会

时间:2022-09-27 03:45:39 热传 我要投稿

AUC面积(area under curve) 是ROC曲线下与坐标轴围成的面积,这个面积数值 ≤ 1。

由于ROC曲线一般都处于y = x这条直线的上方,所以AUC的取值范围在0.5和1之间。

AUC值是评价预测模型的重要指标,AUC越大说明模型区分度越好,也就是区分病人与非病人的能力就越强。

在logistic预测模型中,只有一个AUC值,但在cox预测模型中,AUC值是随着时间变化而变化的。

在一些文章当中也会看到预后预测模型里会看到不同时间的AUC曲线图,陈老师就今天就给大家介绍一下如何应用R语言进行不同时间点AUC折线图的绘制。

加载所需要的包

library(foreign) library(rms)library(survivalROC) 

导入数据,建立cox回归模型

需要操作数据可在公众号回复"cox"获取

setwd("D:/R") #设置工作空间,需要在D盘下建一个R文件夹,后把cox数据放进去setcox<-read.spss("cox.sav", to.data.frame = T)  setcox$horTh<-factor(setcox$horTh,labels = c("否","是"))setcox$menostat<-factor(setcox $menostat,labels = c("绝经前","绝经后"))ddist <- datadist(setcox)options(datadist="ddist")y<-Surv(setcox$time,setcox$cens)coxmod.step<-cph(y ~ horTh + tsize + tgrade + pnodes + progrec, data=setcox,surv = T,x=T,y=T)

通过循环语句,计算不同时间点的AUC值

result<-c("AuC","time")n<-c(365,730,1095)for(i in n){  cutoff<-i  setcox$FirPro = c(1- (summary(survfit(coxmod.step,newdata=setcox),times=cutoff)$surv)) #计算不同时间点死亡率  PRoc<- survivalROC(Stime = setcox$time, status = setcox$cens, marker = setcox$FirPro, predict.time = cutoff, method = "KM") #死亡率为X用"KM"法拟合生存ROC曲线   PRoc<-data.frame(PRoc[c(4,6)]) #提取AUC值及时间  result<-rbind(result,round(PRoc,3)) #将不同次数据进行合并}

画折线图

result<-result[-1,]resultplot(result,type="b")

最后呈现的就是三个不同时间点AUC折线图

如果需要增加时间点,只要在n里多设几个时间点即可。

陈老师辛辛苦苦写完这代码以后,才发现有专门的包来绘制时间依赖的AUC值,我先研究一下,后续再分享给大家。

操作所需数据请大家在公众号后台回复“ cox ”获取

更多临床预测模型内容可关注本公众号的培训通告

培训通告

2022年,我们召集了一批富有经验的高校专业队伍,着手举行短期统计课程培训班,包括 R 语言 、meta分析、临床预测模型、真实世界临床研究、问卷与量表分析、 医学统计与SPSS 、 临床试验数据分析、 重复测量资料分析 、 结构方程模型 等9门课 。如果您有需求,不妨点击查看: