ROC曲线是什么... 派森诺教你如何画

image.png

一、图表介绍

受试者工作特征曲线 (receiver operating characteristic curve,简称ROC),又称为感受性曲线(sensitivity curve)。ROC曲线下面积(the area under the ROC curve, AUC)是指ROC曲线与x轴、(1,0)-(1,1)围绕的面积,只要ROC曲线下面积大于0.5,就证明该诊断试验具有一定的诊断价值。同时,AUC越接近1证明诊断试验的真实性越好。ROC曲线越是靠近左上角,灵敏度越高,误判率越低,则诊断方法的性能越好。可知ROC曲线上最靠近左上角的ROC曲线上的点其灵敏度和特异性之和最大,这个点或者其邻近点常被称为诊断参考值,这些点被称为最佳临界点,点上的值被称为最佳临界值。

ROC曲线可以用于比较两种或两种以上不同诊断方法对疾病的识别能力大小。在对同一疾病的两种或是两种诊断方法进行比较时,可将各个诊断方法的ROC曲线画到同一个ROC空间中(同一个坐标系中),这样就可以直观的鉴别各种诊断方法的优劣了。越是靠近左上角的ROC曲线所代表的诊断方法性能越好。

image.png

图1 ROC曲线图

二、R语言实现

  1. 绘制ROC曲线

library(“pROC”)

Create a few ROC curves:

data(aSAH)
roc.s100b <- roc(aSAH o u t c o m e , a S A H outcome, aSAH outcome,aSAHs100b)
roc.wfns <- roc(aSAH o u t c o m e , a S A H outcome, aSAH outcome,aSAHwfns)
roc.ndka <- roc(aSAH o u t c o m e , a S A H outcome, aSAH outcome,aSAHwfns)

先画个简单的ROC

plot(roc.s100b)
image.png

图2 简单ROC图

  1. 添加拟合线

添加拟合后的光滑曲线

plot(smooth(roc.s100b), add=TRUE, col=“blue”)
legend(“bottomright”, legend=c(“Empirical”, “Smoothed”),
col=c(par(“fg”), “blue”), lwd=2)
image.png

图3 添加拟合曲线ROC

  1. 添加面积

添加AUC面积

plot(roc.s100b, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2),
grid.col=c(“green”, “red”), max.auc.polygon=TRUE,
auc.polygon.col=“lightblue”, print.thres=TRUE)
image.png

图4 ROC图添加AUC

以上ROC曲线,只是针对单个指标的,如果有多个诊断指标该如何绘图呢?另外,针对数据如何添加置信度区间呢?要调整更多样式也挺费功夫的。接下来我们看看基因云平台如何滑溜的实现。

三、平台实现

首先,登入派森诺基因云, 进入【云图汇→ROC曲线】

  1. 准备数据

数据第一列为分类诊断结果,其它列为对应的指标的预测值。

image.png

图5 数据文件示例

  1. 提交绘图

上传数据后,一键提交绘图即可。

image.png

图6 提交数据绘图

  1. 参数调整

在图表调整里面可以对图表的颜色、线条样式、还可以添加置信度等多种参数的个性化调整。

image.png

图7 参数调整页面

添加平滑曲线,通过选择S-G滤波、高阶贝塞尔等方法,可以生成不同精度的拟合曲线。

image.png

图8 平滑ROC曲线

置信区间的调整,可以选择误差棒以及面积着色两种形式进行展示。

image.png

image.png

图9 添加置信区域ROC曲线

猜你喜欢

转载自blog.csdn.net/muhamuha2020/article/details/120840447
今日推荐