多个时间点的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')
这次的绘图,更简单,更直观。
可以跟上次的图比较一下
我比较喜欢上一次的图。
因篇幅问题不能全部显示,请点此查看更多更全内容