进阶版ROC曲线来了!教你优雅地给ROC“添油加醋”!你一定会爱上!(附代码)
大家好,我是阿琛。在上一期的内容中,从SPSS和R软件出发,我给大家介绍了ROC曲线的简单绘制方法(临床生信SCI加分必备!ROC可视化教程看这篇就够了!你一定要试试!)。今天我们一起来看看如何将得到的ROC曲线进行美化,以及更进一步衍生。
下面,我们一起来看下ROC曲线各种进阶版本的绘制方法。
R包的安装与引用
#install.packages('pROC')
library(pROC)
数据的整理与载入
rt <- read.table('exp.txt', header=T,sep=' ', check.names=F, row.names=1)
head(rt) #查看数据集前6行内容
str(rt) #查看变量相关信息
构建ROC预测模型
ROC1 <- roc(rt$Type, rt$VCAN,
levels = c('Normal', 'Tumor'))
ROC2 <- roc(rt$Type, rt$TP53,
levels = c('Normal', 'Tumor'))
ROC1 #查看模型的预测效能
ROC2 #查看模型的预测效能
绘制ROC曲线
#绘制ROC曲线
plot(ROC1,
col = 'red', #设置曲线颜色
legacy.axes = TRUE, #使x轴变为1-Specificity
xlab = '1-Specificity')
#拟合平滑的ROC曲线
plot(smooth(ROC1, method='density'), #使用smooth()函数进行平滑拟合
add = FALSE, #不添加到上一个图层
col = 'red', #设置曲线颜色
legacy.axes = TRUE, #使x轴变为1-Specificity
xlab = '1-Specificity')
plot(ROC1)
ROC3 <- ci.sp(ROC1,
sensitivities = seq(0, 1, 0.01), #评估CI的敏感性
boot.n = 2000) #重复计算次数,默认为2000次
plot(ROC3,
add = FALSE, #不添加到上一个图层
type = 'shape', #置信区间的类型
col = 'red')
plot(ROC1,
add = FALSE, #不添加至上一图层
col = 'red', #设置曲线颜色
legacy.axes = TRUE, #使x轴变为1-Specificity
xlab = '1-Specificity',
print.auc =TRUE,
print.auc.x = 0.5, #输出auc值的x轴位置
print.auc.y = 0.5, #输出auc值的y轴位置
print.thres = TRUE)
#绘制2条ROC曲线
plot(ROC1,
col = 'red', #设置曲线颜色
legacy.axes = TRUE, #使x轴变为1-Specificity
xlab = '1-Specificity')
plot(ROC2,
add = TRUE, #添加至上一图层
col = 'blue', #设置曲线颜色
legacy.axes = TRUE, #使x轴变为1-Specificity
xlab = '1-Specificity')
legend(0.2, 0.2,
lwd = 2,
legend = c('VCAN', 'TP53'),
col = c('red', 'blue'))
#比较并添加p值
test <- roc.test(ROC1, ROC2) #对两条ROC曲线进行比较
text(0.6, 0.2, #设置坐标轴位置
adj = c(0, 0.5),
labels = paste0('P value =', format.pval(test$p.value))) #添加p值
终极版本
plot(ROC1,
add = FALSE, #不添加至上一图层
col = 'red', #设置曲线颜色
legacy.axes = TRUE, #使x轴变为1-Specificity
xlab = '1-Specificity',
main = 'ROC Curve for VCAN', #添加标题
print.auc =TRUE,
auc.polygon = TRUE, #将auc曲线下面积转换为多边形
auc.polygon.col = '#fff7f7', #设置多边形的填充色
grid = c(0.5, 0.2), #设置两轴网格线的间隔为0.5,0.2
grid.col = c('black', 'black'), #设置两轴网格线的颜色
print.thres = TRUE)
legend(0.25, 0.2, #设置位置的x轴和y轴坐标
lwd = 2,
legend = 'VCAN',
col = 'red') #颜色与ROC曲线的颜色一致
赞 (0)