什么是灵敏度、特异性和 ROC 曲线

在循证医学中,会通过一些统计学指标来评估一种疾病诊断方法的有效性。比如在日常生活中经常听到的灵敏度、特异度、阳性预测值、阴性预测值,以及 ROC 曲线等。此外,这些指标也可以在计算机科学领域用于机器学习的模型评估。

以疾病诊断为例,一个人只存在有病(阳性)或没病(阴性)两种情况。对于这类二元分类模型,诊断(预测)结果分为四种:

quadrantChart title 预测结果混淆矩阵 x-axis "实际阳性 (P)" --> "实际阴性 (N)" y-axis "预测阴性 (N')" --> "预测阳性 (P')" quadrant-1 "假阳性 (FP)" quadrant-2 "真阳性 (TP)" quadrant-3 "假阴性 (FN)" quadrant-4 "真阴性 (TN)"

灵敏度是指真正的患者中被诊断为阳性的人数比例。灵敏度越高,漏诊率越低。特异性是指无病人群中被诊断为阴性的人数比例。特异性越高,误诊率越低。

然而,仅依靠这两个指标来评价一个诊断方法是否优秀是远远不够的。比如,某种疾病在普通人群中的发病率为十万分之一。我们通过某种特异性为 99% 的诊断方法对普通人群进行疾病筛查,换句话说,该检测方法可以识别出 99% 的阴性人群。然而由于该疾病在普通人群中发病率极低,因此一个被该方法诊断为阳性的普通人,他实际患病的概率也仅有千分之一。为了更加准确地对一个诊断方法做出评价,我们需要引入更多的指标。

术语表
中文缩写计算公式描述
真阳性
True Positive
TP-又称为:
命中 (Hit)
假阳性
False Positive
FP-又称为:
误报 (False Alarm)
真阴性
True Negative
TN-又称为:
正确拒绝 (Correct Rejection)
假阴性
False Negative
FN-又称为:
漏报 (Miss)
阳性
Positive
PTP + FN指实际阳性
阴性
Negative
NTN + FP指实际阴性
灵敏度
Sensitivity
SENTP / (TP + FN)实际为阳性的样本中,判断为阳性的比例,即阳性识别率。
又称为:
召回率 (Recall)
真阳性率 (True Positive Rate / TPR)
命中率 (Hit Rate)
特异性
Specificity
SPCTN / (TN + FP)实际为阴性的样本中,判断为阴性的比例,即阴性识别率。
又称为:
真阴性率 (True Negative Rate / TNR)
假阳性率
False Positive Rate
FPRFP / (TN + FP)实际为阴性的样本中,被错误判断为阳性的比例。
FPR + SPC= 1
又称为:
误诊率
假阴性率
False Negative Rate
FNRFN / (TP + FN)实际为阳性的样本中,被错误判断为阴性的比例。
FNR + SEN = 1
又称为:
漏诊率
假发现率
False Discovery Rate
FDRFP / (TP + FP)判断为阳性的样本中,假阳性的比例。
FDR + PPV = 1
阳性预测值
Positive Predictive Value
PPVTP / (TP + FP)判断为阳性的样本中,实际阳性的比例。
FDR + PPV = 1
又称为:
精确率 (Precision)
阴性预测值
Negative Predictive Value
NPVTN / (TN + FN)判断为阴性的样本中,实际阴性的比例。
准确率
Accuracy
ACC(TP + TN) / (P + N)总体样本中,判断准确的样本比例。
F1 评分
F1 Value
F12TP / (2TP + FP + FN)精确率灵敏度的调和平均数,用于综合评价精确率和灵敏度。评分越高,方法越优秀。

通常来说,检测结果是一个连续的数值。可以设置一个阈值,当检测结果的数值越过阈值则判定为阳性。比如通过眼压水平作为青光眼诊断标准,通过血压水平作为高血压诊断标准。如果不断调整阈值,则会得到一系列的 TPR (真阳性率)和 FPR (假阳性率)值。我们将 FPR 定义为 X 轴,TPR 定义为 Y 轴,通过遍历不同的阈值,就能绘制出一条曲线。这条曲线就称为 ROC 曲线,英文全称为 Receiver Operating Characteristic。

--- config: xyChart: width: 500 height: 500 --- xychart-beta title "ROC 空间" x-axis "假阳性率 (FPR)" [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] y-axis "灵敏度 / 真阳性率 (TPR)" 0 --> 1.0 line [0, 0.78, 0.87, 0.9, 0.9, 0.91, 0.92, 0.95, 0.96, 0.97, 0.98] line [0, 0.5, 0.8, 0.9, 0.92, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99] line [0, 0.3, 0.5, 0.68, 0.8, 0.85, 0.9, 0.9, 0.9, 0.93, 0.94]

ROC 曲线中最接近左上角的一个点,其灵敏度和特异性之和相对来说最高,其对应的诊断实验结果作为最佳的诊断阈值。ROC 曲线下面积 (Area Under the ROC Curve, AUC) 反映了诊断方法本身的价值。曲线下面积越接近 1.0,其诊断的真实度越高,区分能力越强;曲线越接近对角线,面积越接近 0.5,则诊断的真实度越差,区分能力越弱。ROC 曲线可以用来比较几种诊断方法的效率。