查看原文
其他

R语言统计与绘图:pROC包绘制ROC曲线

段小麻 R语言统计与绘图 2023-01-01

ROC曲线是临床中常用的统计分析之一,R中可以绘制ROC曲线的包也有很多,pROC包就是其中的佼佼者。

pROC包可以计算AUC和95%置信区间,可以可视化、平滑和比较ROC曲线。

pROC包中的常用缩写

缩写解释
ROC曲线受试者操作特征曲线
AUCROC曲线下面积
pAUC部分ROC曲线下面积
CI置信区间
SP特异度specificity
SE灵敏度sensitivity

今天来学习下怎么使用pROC包来绘制多条ROC曲线。


目  录

  • 1. 安装和加载R包

  • 2. 读取内置数据集

  • 3. 建立拟合曲线

  • 4. 绘制多条ROC曲线

    • 4.1 先绘制1条ROC曲线

    • 4.2 再添加1条ROC曲线

    • 4.3 两曲线比较并添加p值

    • 4.4 添加图例

  • 5. plot()函数

    • 5.1 常用参数

    • 5.2 调整坐标轴参数

    • 5.3 ROC曲线颜色、线型和线宽

    • 5.4 参考线颜色、线型和线宽

    • 5.5 ROC曲线的阈值

    • 5.6 AUC值位置、颜色和缩放倍数

    • 5.7 调整背景网格线

    • 5.8 AUC转化为多边形

    • 5.9 最大AUC转化为四边形

    • 5.10 ROC曲线的置信区间

  • End


1. 安装和加载R包

install.packages("pROC"# 安装pROC包
library(pROC) # 加载pROC包

2. 读取内置数据集

使用pROC包自带的aSAH数据集来演示。该数据集包括了113例动脉瘤蛛网膜下腔出血患者的临床和实验室资料。

data(aSAH)   # 加载内置数据集
View(aSAH)   # 查看数据集
aSAH数据集包括113名患者,7个变量

3. 建立拟合曲线

在pROC包中,使用roc()函数来建立ROC对象。默认情况下roc()函数会输出AUC的值。

roc1 <- roc(aSAH$outcome, aSAH$s100b,
            levels=c("Good""Poor")) 
roc2 <- roc(aSAH$outcome, aSAH$ndka,
            levels=c("Good""Poor"))
roc1;roc2

4. 绘制多条ROC曲线

使用plot()函数来绘制ROC曲线,可以使用很多参数来调整ROC曲线外观。

4.1 先绘制1条ROC曲线

plot(roc1, 
     print.auc=TRUE# 图像上输出AUC的值
     print.auc.x=0.4, print.auc.y=0.5# 设置AUC值坐标为(x,y)
     auc.polygon=TRUE# 将ROC曲线下面积转化为多边形
     auc.polygon.col="#fff7f7",  # 设置多边形的填充色
     grid=c(0.50.2), # 设置两轴网格线的间隔为0.5,0.2
     grid.col=c("black""black"),  # 设置两轴间隔线条的颜色
     print.thres=TRUE# 在图像上输出阈值
     main="Comparison of two ROC curves",  # 添加图形标题
     col="#FF2E63",  # 设置ROC曲线颜色
     legacy.axes=TRUE)   # 使x轴从0到1,表示为1-特异度

4.2 再添加1条ROC曲线

plot.roc(roc2,
         add=TRUE# 增加曲线
         col="#252A34"# 设置ROC曲线颜色
         print.thres=TRUE# 图像上输出阈值
         print.auc=TRUE# 图像上输出AUC的值
         print.auc.x=0.4,print.auc.y=0.4# AUC的坐标为(x,y)

4.3 两曲线比较并添加p值

testp <- roc.test(roc1,roc2)   # 检验两条曲线
text(0.40.2,  # 设置添加p值的位置(x,y)
     labels=paste("P value =", format.pval(testp$p.value)), 
     adj=c(00.5)) # 在图上添加P值

4.4 添加图例

legend(0.350.20,  # 图例位置x,y
       bty = "n",  # 图例样式
       legend=c("roc1","roc2"),  # 添加分组
       col=c("#FF2E63","#252A34"),  # 颜色跟前面一致
       lwd=2)  # 线条粗细

5. plot()函数

下面为plot()函数中调节ROC曲线外观的参数解释,具体内容可看目录,请理性购买!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存