其他
R语言统计与绘图:pROC包绘制ROC曲线
ROC曲线是临床中常用的统计分析之一,R中可以绘制ROC曲线的包也有很多,pROC
包就是其中的佼佼者。
pROC包可以计算AUC和95%置信区间,可以可视化、平滑和比较ROC曲线。
pROC
包中的常用缩写
缩写 | 解释 |
---|---|
ROC曲线 | 受试者操作特征曲线 |
AUC | ROC曲线下面积 |
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) # 查看数据集
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.5, 0.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.4, 0.2, # 设置添加p值的位置(x,y)
labels=paste("P value =", format.pval(testp$p.value)),
adj=c(0, 0.5)) # 在图上添加P值
4.4 添加图例
legend(0.35, 0.20, # 图例位置x,y
bty = "n", # 图例样式
legend=c("roc1","roc2"), # 添加分组
col=c("#FF2E63","#252A34"), # 颜色跟前面一致
lwd=2) # 线条粗细
5. plot()函数
下面为plot()函数中调节ROC曲线外观的参数解释,具体内容可看目录,请理性购买!