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

工具统计分析

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

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

诊断性试验(diagnostic test)评价的核心是一张 2×2 四格表:行是检测结果(阳性/阴性),列是真实疾病状态(患病/无病)。四个格子分别记录四类人:

               真实患病(+)   真实无病(−)
检测阳性(+)      TP               FP
检测阴性(−)      FN               TN

八个核心指标

灵敏度(敏感性)  Se  = TP / (TP + FN)
特异度            Sp  = TN / (TN + FP)
阳性预测值       PPV  = TP / (TP + FP)
阴性预测值       NPV  = TN / (TN + FN)
阳性似然比       LR+  = Se / (1 − Sp)
阴性似然比       LR−  = (1 − Se) / Sp
约登指数           J  = Se + Sp − 1
准确度                = (TP + TN) / (TP + FP + FN + TN)

灵敏度特异度是检测自身的固有属性,不受患病率影响,可跨人群比较。PPV 和 NPV 则随患病率变化:同一检测在罕见病筛查(患病率 0.1%)和高危门诊(患病率 40%)中,PPV 可以相差 100 倍。

LR+(阳性似然比) 越大,阳性结果越支持诊断;LR−(阴性似然比) 越小,阴性结果越能排除诊断。Jaeschke 1994 经验阈值:LR+ > 10 或 LR− < 0.1 被认为有强力诊断价值;LR+ 2–5 或 LR− 0.2–0.5 提示有限诊断价值。

约登指数 J 综合了灵敏度与特异度,在 ROC 曲线分析中常用于选取最优截断点(J 最大处平衡假阳性与假阴性的代价)。

贝叶斯后验概率

若已知目标人群的患病率 P₀(先验概率),可用似然比更新为后验概率:

先验比数(Odds)= P₀ / (1 − P₀)
后验比数         = 先验比数 × LR
后验概率         = 后验比数 / (1 + 后验比数)

这与代入患病率直接算调整后 PPV/NPV 在数学上等价,但更直观:它将“检测结果”理解为更新先验的一个证据。

置信区间:Wilson 评分法

对比例 p̂ = k/n,Wilson 95% 置信区间为:

令 z = 1.96
中心 = p̂ + z²/(2n)
半径 = z × √(p̂(1−p̂)/n + z²/(4n²))
分母 = 1 + z²/n

下界 = (中心 − 半径) / 分母
上界 = (中心 + 半径) / 分母

Wilson 法优于常用的 Wald 法(p̂ ± 1.96 × SE):当 p̂ 接近 0 或 1、或样本量小时,Wald 法会给出负数下界或超过 1 的上界,而 Wilson 法始终落在 [0, 1]。

适用边界

验证示例

输入:TP = 45,FP = 10,FN = 5,TN = 90(共 150 例,样本患病率 = 50/150 ≈ 0.333)

Se   = 45 / (45 + 5)   = 45 / 50  = 0.900
Sp   = 90 / (90 + 10)  = 90 / 100 = 0.900
PPV  = 45 / (45 + 10)  = 45 / 55  ≈ 0.818
NPV  = 90 / (90 + 5)   = 90 / 95  ≈ 0.947
LR+  = 0.900 / (1 − 0.900) = 0.900 / 0.100 = 9.00
LR−  = (1 − 0.900) / 0.900 = 0.100 / 0.900 ≈ 0.111
J    = 0.900 + 0.900 − 1   = 0.800
准确度 = (45 + 90) / 150    = 135 / 150 = 0.900

若该检测用于患病率 P₀ = 0.1 的筛查人群(先验比数 = 0.1/0.9 ≈ 0.111): - 阳性结果后验:0.111 × 9.00 = 1.000 → 后验概率 = 0.500 - 阴性结果后验:0.111 × 0.111 = 0.0123 → 后验概率 ≈ 0.012

LR+ = 9.0 表明该检测性能良好但未达到“强力诊断”阈值(> 10)。

常见错误

  1. TP/FP/FN/TN 行列填反:FP 是“无病但阳性”,FN 是“有病但阴性”——填反会让 Se 和 Sp 对调,结果数值仍在合理范围内,极难发现。建议填表前逐格核对含义。
  2. 把样本率当患病率:四格表里的疾病比例((TP+FN)/n)是研究纳入人群的率,未必等于目标应用人群的患病率。直接用样本率推算 PPV/NPV 用于预测外部人群时需说明这一假设。
  3. 只报告 PPV 而不说明患病率:PPV 离开患病率语境没有意义,读者无法将结论迁移到自己的人群。推荐同时报告 LR+/LR−,它们是不依赖人群的检测性质。

常见问题

PPV 和灵敏度有什么区别?

灵敏度是「患者中被检出的比例」,只取决于检测本身,不随人群变化;PPV 是「阳性结果里真正有病的概率」,还受患病率影响。同一检测在罕见病筛查(患病率 0.1%)和高危门诊(患病率 40%)中,PPV 可以相差 100 倍以上。

为什么报告 LR 而不只报告 PPV?

阳性/阴性似然比(LR+/LR−)是检测的固有属性,不随人群患病率变化;而 PPV 和 NPV 会随人群改变。把 LR 报出来,读者可以用自己人群的患病率通过贝叶斯公式推算后验概率,比只给 PPV 更具可迁移性。

约登指数 J 怎么用?

J = 灵敏度+特异度 − 1,范围 0–1,越接近 1 越好。它常用于从连续指标的 ROC 曲线上选最优截断点:J 最大处平衡了假阳性与假阴性的代价。J = 0 等价于随机猜测,J = 1 是完美检测。

这和卡方检验有什么不同?

卡方/Fisher 精确检验(见 chi-square-fisher 工具)回答「检测结果与疾病状态是否存在统计关联」(输出 p 值与优势比),本工具回答「这个检测有多好用」(输出可直接用于临床决策的灵敏度、特异度等指标)。两者互补,不可替代。

某个格子为 0 怎么办?

若 FP = 0 则 LR+ 为正无穷;若 FN = 0 则 LR− 为 0;若 TP = 0 或 TN = 0 则 Se / Sp 无法定义。本工具遇到这种情况会逐项标注,但不自动加 0.5 校正(Haldane–Anscombe 校正),因为是否校正需研究者根据实验设计判断。

相关工具

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

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

qPCR 2^-ΔΔCt 相对定量在线计算

粘贴 Ct 表,自动算 ΔCt、ΔΔCt、相对表达倍数与组内离散度。

基因列表交集并集差集在线计算(Venn 集合运算)

粘贴 2–3 组基因/ID 列表,一键得到交集、并集、各自独有,含去重与大小写归一。

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