碱基日读 每天读完真实文献,只讲有用的那一段

工具›统计分析计算器

ROC 曲线与 AUC 计算器(含 Hanley-McNeil 置信区间)

贴阳性组与阴性组的评分,算出 ROC 表、AUC(梯形法与一致对法互相校验)、Hanley-McNeil 置信区间、Youden J 最优阈值和 Mann-Whitney 检验;也可只填已发表的 AUC 与样本量求置信区间。

单个阈值下的敏感度和特异度只描述了一个点。换一个阈值,这两个数就变了, 而哪个阈值更好本身就是要回答的问题。ROC 曲线把所有阈值一次性画出来, 曲线下面积(AUC)则把整条曲线压成一个数。

AUC 有一个很干净的含义:随机取一个阳性个体和一个阴性个体, 阳性那个评分更高的概率。0.5 等于抛硬币,1.0 是完全分开。

两条独立的算法,结果必须相同

梯形法:   按每个可能的阈值算出 (1−特异度, 敏感度),连点成线,梯形积分
一致对法: AUC = [ #(阳性>阴性) + 0.5 × #(阳性=阴性) ] ÷ (n₁ × n₂)

这两条路径毫无共同之处,但 Hanley 与 McNeil(Radiology 1982;143:29-36)证明 它们恒等——第二条正好是 Mann-Whitney 统计量归一化后的值。 本工具把两个都算出来并排列出,对不上说明实现坏了。 并列值按 0.5 计权,这是标准做法。

置信区间

SE(AUC) = √{ [AUC(1−AUC) + (N₁−1)(Q₁−AUC²) + (N₂−1)(Q₂−AUC²)] ÷ (N₁N₂) }
Q₁ = AUC ÷ (2−AUC)        Q₂ = 2·AUC² ÷ (1+AUC)
CI  = AUC ± z(α/2) × SE(AUC)

同样出自 Hanley & McNeil 1982。N₁ 是阳性数、N₂ 是阴性数—— 注意它不是总样本量,这一点很容易填错,而它在分母上。

可以验算

锚点一,已发表的算例。 把模式切到「已知 AUC 与样本量」,填 AUC 0.6、 N₁ = N₂ = 976、双侧 95%,区间宽度应得 0.0500——这正是 NCSS/PASS 文档 《Confidence Intervals for the Area Under an ROC Curve》里那个例子的答案。 填 245 得 0.0998,也对得上它那张表。

锚点二,恒等式。 点开工具就是一组 12 vs 12 的演示数据(含一处并列值):

量 值
U(一致对计数) 115.5
AUC = U ÷ 144 0.802083
梯形积分 AUC 0.802083(逐位相同)
SE 0.092213
95% CI 0.621350 – 0.982817
Youden J 最大 0.416667(7 个阈值并列,工具会全列出来)
Mann-Whitney 双侧 p 0.012023

两种 AUC 算法逐位相同这件事,比任何单独一个数字对得上都更能说明实现是对的。

适用边界

常见问题

AUC 到底是什么意思?

**随机取一个阳性个体和一个阴性个体,阳性那个评分更高的概率。**0.5 等于抛硬币,1.0 是两组完全分开。这个解释不是类比,是精确的:Hanley 与 McNeil(Radiology 1982;143:29-36)证明经验 ROC 的梯形面积恰好等于 Mann-Whitney 统计量归一化后的值,而后者就是这个概率的无偏估计。本工具把两条路径都算出来并列,正是为了让这件事看得见。

算出来的 AUC 小于 0.5,是指标比随机还差吗?

几乎总是**方向填反了**。AUC 0.3 意味着「低分那组更像阳性」——把方向选项改成「评分越低越像阳性」,你会得到 0.7。真正「比随机还差」的指标在实践中极少见,看到 < 0.5 先检查方向,而不是下结论说这个标志物没用。

SE 公式里的 N₁ N₂ 填什么?

**N₁ 是阳性(患病)例数,N₂ 是阴性(对照)例数,不是总样本量。**它们分别出现在分母和两个括号里,填成总数会把标准误算小、区间算窄,看起来比实际更有把握。这是这个公式最常见的填错方式,所以工具把两个数分开要。

置信区间上限超过 1 了,怎么办?

那是正态近似在 AUC 接近端点时的局限。实测 AUC 0.965、每组 12 例时上限会到 1.043。本工具把显示值夹到 1.0 **并明确告警**——悄悄夹断会让人以为区间真的到 1.0 为止,那是另一个说法。真要在这种情形下报区间,该换 bootstrap 或先做 logit 变换再反变换。

Youden J 最优阈值可以直接拿去用吗?

**不建议直接用。** J = 敏感度 + 特异度 − 1 隐含一个假设:漏诊和误诊的代价一样重。筛查里漏诊往往严重得多,这时候该先定住一个可接受的敏感度(比如 ≥ 95%),再在满足它的阈值里挑特异度最高的。另外样本量小的时候 J 是阶梯函数,常有多个阈值并列最优,工具会报出并列个数——并列说明数据分不出它们,不是让你随便挑一个。

能比较两个模型的 AUC 吗?

本工具不做。两条 ROC 的比较要看它们是否来自**同一批个体**:同一批的话需要配对方法(DeLong,或 Hanley-McNeil 1983 的配对公式),它要用到两个评分之间的相关性;不同批次才能当独立样本比。直接拿两个 AUC 和各自的区间看「有没有重叠」是错的,那会把配对数据里被抵消掉的共同变异重复计算一遍。

AUC 高就说明临床上好用吗?

不一定。AUC 是**阈值无关**的整体区分能力,而临床用的是某一个阈值。两条 AUC 相同的曲线完全可以在你真正关心的那段(比如特异度 > 90% 的区域)差很远。要选阈值就看 ROC 表逐行比,不要只看一个 AUC。另外 AUC 不受患病率影响,而阳性预测值受——低患病率人群里一个 AUC 0.9 的指标,阳性结果仍可能大半是假阳性。本站的 [诊断试验 2×2 分析](../diagnostic-2x2/) 可以算那一侧。

相关工具

诊断试验四格表计算器:灵敏度 / 特异度 / 阳性预测值

输入 TP/FP/FN/TN 四格,一次算出灵敏度、特异度、阳性与阴性预测值、似然比与约登指数,给出 95% Wilson 置信区间,并可用贝叶斯公式更新后验概率。

哈迪-温伯格平衡计算器:等位基因频率、基因型频率与 HWE 偏离检验

输入次等位基因频率或观测基因型计数,给出 HWE 期望频率与 χ² 偏离检验,适用于 GWAS 质控、隐性遗传病携带率估算与遗传风险计算。

多重检验校正在线计算:BH (FDR)、BY 与 Bonferroni

粘贴一列 p 值,一次得到 BH 的 q 值、BY 与 Bonferroni 校正值,三者并列对照。

没有广告,不收集数据,每个公式都验算过。维护它需要持续投入——如果帮你省了时间,请杯咖啡。
请杯咖啡 了解更多 →