第 54 个主题,共 91 个· 卫生技术评估框架与预防经济学

需要治疗人数 (Number Needed to Treat,NNT)

NNT 是指在一段规定的时间范围内,必须让多少患者接受某项干预,才能使一名额外患者获益。它把容易误导人的百分比风险降低,转化为任何人都能推理的"每份获益所需付出的努力"单位。

为什么重要

"心脏病发作风险降低 25%!"听起来很有说服力。如果基线风险是 5 年内 4%,那么绝对降幅只有 1 个百分点,也就是说必须有 100 人服药 5 年,才能让其中 1 人获益——而这 100 人都要承担成本和副作用。NNT 正是相对风险这种营销话术的解药,这也是循证医学总是以它开篇的原因。用于一级预防的他汀类药物:每避免一次心脏病发作,5 年内 NNT ≈ 50–100。它的镜像指标 NNH(需要伤害人数)则统计每伤害一人需要治疗多少人。

计算方法

ARR = 对照组事件发生率 − 治疗组事件发生率   (绝对风险降低)
NNT = 1 / ARR

NNH = 1 / (治疗组伤害率 − 对照组伤害率)

经济学桥接:
每预防一起事件的成本 = NNT × 每个疗程的成本

务必同时说明时间范围和基线人群——脱离这两者,NNT 毫无意义。

算例

某医院的跌倒预测系统标记出高风险患者以便干预(床位传感器、评估、加强照护)。试验结果:受伤性跌倒从入院患者的 3.2% 降至 2.4%。

ARR = 0.8 个百分点 → NNT = 1/0.008 = 125
   (必须有 125 名患者接受这套干预组合,才能预防 1 起受伤性跌倒)

干预成本 ≈ 每位患者 £40 → 每预防一起跌倒的成本 = 125 × 40 = £5,000
一起住院期间受伤性跌倒的成本(额外住院、影像检查、诉讼)≈ £12,000
净效益:预防措施的回报约为 2.4:1——而 QALY 获益还在此之外。

请注意 NNT 是如何让这项主张保持诚实的:"跌倒减少 25%"与"每治疗 125 名患者预防 1 起跌倒"是同一个结果,只是说服力大不相同。

与软件工程的关联

对于任何"筛查许多条目、只为抓住极少数问题"的关卡或检查而言,NNT 都是恰当的单位:"必须有多少个 PR 经过 AI 审查关卡,才能抓住一个真正会流入生产环境的缺陷。" 如果一道关卡每审查 400 个 PR 才能真正抓住一次(NNT = 400),且每次审查耗费开发者 4 分钟注意力,那么每抓住一次问题的成本约为 27 个开发者小时——现在把它与该问题若发生所造成的事故成本相比较。NNH 对应的是误报:每出现一次误报需要审查多少个 PR,每次误报又会消耗多少注意力和信任?筛查类工具(代码检查器、安全扫描器、异常检测)在发布时都应附带 NNT/NNH 的算法——参见筛查经济学,了解为何低患病率会让这些数字变得残酷。 需要筛查人数是高一层级的对应数字,针对的是整个筛查再治疗的项目,而不只是治疗。

陷阱

  • 没有时间范围:"NNT = 50"什么都说明不了;"5 年内 NNT = 50"才是一个明确的主张。
  • 基线风险的移植:在高风险试验人群中算出的 NNT,一旦套用到低风险的部署人群,就会失真。
  • 忽视 NNH——一道 NNT 为 400、NNH 为 3 的关卡,只是一台制造麻烦的机器,而不是一套安全系统。

参考来源