您的当前位置:首页正文

多个时间点的ROC曲线还可以这样画!

2021-09-28 来源:钮旅网


多个时间点的ROC曲线还可以这样画!

展开全文

之前介绍了用ggplot2来定制多个时间点的ROC曲线

多个生存时间的ROC曲线该怎么画?

那个图可能更好看,容易和ggplot2系列的图一起组合。

这个图在模型构建里面经常出现,模型构建必须有预测的终点,即生存事件,假如团队能够有一批拥有生存时间,而且临床资料都齐全的患者数据,那么可以做的事情就很多了。

仅仅是生存模型的构建,就有mRNA的,lncRNA 的,MiRNA的,这几个联合起来的,有甲基化位点的,有肿瘤浸润的,有可变剪切的,反正是只要对生死有影响的指标,都可以拿来构建模型,所以TCGA数据是个宝,人人都想来淘金,淘金的人多了,喝水就是个问题,而我不生产水,我只是大自然的搬运工。

今天,我来提供R基础绘图的绘制多点ROC曲线的方案。

使用的数据储存在rt这个数据框中

1. > head(rt)

2. futime fustat riskScore risk order num

3. 1 7.1561644 0 -0.7054783 low TCGA-BH-A0BS 1

4. 2 5.2575342 0 -0.6712008 low TCGA-BH-A0AZ 2

5. 3 5.1561644 0 -0.6020396 low TCGA-AO-A1KQ 3

6. 4 0.5890411 0 -0.5878228 low TCGA-B6-A400 4

7. 5 1.2246575 0 -0.5246598 low TCGA-A7-A425 5

8. 6 7.2465753 0 -0.5006755 low TCGA-PE-A5DE 6

实际上我们要用的是前三列,第三列是lasso回归构建的生存模型预测的风险值 计算方法在暑期课程的甲基化部分,也可以看一下这个帖子:

TCGA数据库构建生存预测模型之lasso回归

本次使用“timeROC”这个包来计算AUC,这个包可以同时计算多个时间的AUC

1. library(timeROC)

2. ROC_rt<>timeROC(T=rt$futime,delta=rt$fustat,

3. marker=rt$riskScore,cause=1,

4. weighting='marginal',

5. times=c(3,5,10),ROC=TRUE)

查看ROC_rt

画图如下

1. plot(ROC_rt,time=3,title=FALSE,lwd=2)

2. plot(ROC_rt,time=5,col='blue',add=TRUE,title=FALSE,lwd=2)

3. plot(ROC_rt,time=10,col='black',add=TRUE,title=FALSE,lwd=2)

4. legend('bottomright',

5. c(paste0('AUC at 3 years: ',round(ROC_rt$AUC[1],2)),

6. paste0('AUC at 5 years: ',round(ROC_rt$AUC[2],2)),

7. paste0('AUC at 10 years: ',round(ROC_rt$AUC[3],2))),

8. col=c('red','blue','black'),lwd=2,bty = 'n')

这次的绘图,更简单,更直观。

可以跟上次的图比较一下

我比较喜欢上一次的图。

因篇幅问题不能全部显示,请点此查看更多更全内容