1f4d5

预测模型,为什么要区分诊断预测和预后预测?

2026/05/21 发布 2026/05/21

简单引用临床预测模型集大成之著作Clinical Prediction Models(By Ewout W. Steyerberg)

Steyerberg 在《Clinical Prediction Models》里区分:

  • 诊断预测(diagnostic prediction)
  • 预后预测(prognostic prediction)

并不是为了玩概念,而是因为二者在以下方面都不一样:

  • 临床问题
  • 时间结构
  • 数据设计
  • 结局定义
  • 模型用途
  • 评价方式

最核心的区别是:

诊断预测(diagnostic prediction)是判断“现在是否已经有某个疾病或状态”;预后预测(prognostic prediction)是判断“未来是否会发生某个结局”。


1. 诊断预测(diagnostic prediction):回答“现在有没有?”

诊断预测(diagnostic prediction)针对的是一个:

当前已经存在,但尚未被确认的状态。

例如:

临床问题 诊断预测(diagnostic prediction)
胸痛患者是否已经有急性冠脉综合征(acute coronary syndrome, ACS)? 预测当前是否存在急性冠脉综合征(ACS)
呼吸困难患者是否已有肺栓塞(pulmonary embolism, PE)? 预测当前是否存在肺栓塞(PE)
发热患者是否已有细菌感染? 预测当前是否存在感染
影像结节是否已经是恶性? 预测当前病灶是否为癌

所以,诊断预测(diagnostic prediction)的时间逻辑是:

患者现在有症状或检查异常
        ↓
使用当前信息进行预测
        ↓
判断当前是否存在某个疾病状态

关键是:

结局(outcome)Y 在预测时其实已经存在,只是医生还不知道。

例如,肺栓塞(pulmonary embolism, PE)患者来到急诊时,肺栓塞可能已经发生了;模型只是帮助医生判断:

这个人现在有没有肺栓塞?


2. 预后预测(prognostic prediction):回答“以后会不会?”

预后预测(prognostic prediction)针对的是一个:

未来尚未发生的结局。

例如:

临床问题 预后预测(prognostic prediction)
这个急性冠脉综合征(ACS)患者未来 30 天是否死亡? 预测未来死亡风险
这个癌症患者未来 5 年是否复发? 预测未来复发风险
这个住院患者出院后是否再入院? 预测未来再入院风险
这个房颤患者未来是否发生卒中? 预测未来卒中风险
这个患者未来是否发生静脉血栓栓塞(venous thromboembolism, VTE)? 预测未来血栓事件

预后预测(prognostic prediction)的时间逻辑是:

患者当前处于某个起点状态
        ↓
使用基线信息进行预测
        ↓
判断未来某段时间内是否发生结局

关键是:

结局(outcome)Y 在预测时还没有发生。


3. 为什么必须区分?因为时间结构完全不同

这是最重要的一点。

3.1 诊断预测(diagnostic prediction)的时间结构

诊断模型通常没有真正的随访时间(follow-up time)。

它关心的是:

在当前诊疗时点,患者是否已有目标疾病?

例如:

胸痛发生
        ↓
到急诊
        ↓
心电图(electrocardiogram, ECG)/ 肌钙蛋白(troponin)/ 病史
        ↓
判断当前是否为急性冠脉综合征(ACS)

这里的重点不是未来会不会发生急性冠脉综合征,而是患者现在是否已经有急性冠脉综合征。

3.2 预后预测(prognostic prediction)的时间结构

预后模型必须定义:

元素 含义
起点时间(time zero / baseline) 风险预测开始的时间点
预测窗口(prediction horizon) 预测未来多长时间
随访时间(follow-up time) 观察患者多久
结局发生时间(event time) 事件何时发生
截尾(censoring) 随访未完成,或事件未被观察到

例如:

出院当天 = 起点时间(time zero)
        ↓
预测未来 30 天是否再入院
        ↓
随访 30 天

如果起点时间(time zero)定义不清,预后模型很容易出现偏倚(bias),尤其是:

中文 英文
不朽时间偏倚 immortal time bias
数据泄漏 data leakage
未来信息泄漏 future information leakage
不恰当使用未来信息 inappropriate use of future information

4. 诊断预测(diagnostic prediction)的结局是“目标疾病状态”

诊断预测里的结局(outcome)通常是:

是否存在某个疾病、病理状态或诊断类别。

例如:

诊断结局(diagnostic outcome) 中文
疾病存在 vs 疾病不存在(disease present vs absent) 是否有病
恶性 vs 良性(malignant vs benign) 病灶是否为恶性
细菌感染 vs 病毒感染(bacterial vs viral infection) 感染类型
肺栓塞存在 vs 肺栓塞不存在(PE present vs PE absent) 有无肺栓塞

诊断模型通常需要一个:

参考标准(reference standard)

金标准(gold standard)

例如:

疾病 参考标准(reference standard)
肺栓塞(pulmonary embolism, PE) CT 肺动脉造影(computed tomography pulmonary angiography, CTPA)
急性冠脉综合征(acute coronary syndrome, ACS) 连续肌钙蛋白(serial troponin)+ 心电图(ECG)+ 临床判定
癌症 病理(pathology)
细菌感染 培养(culture)/ 专家判定诊断

所以,诊断预测(diagnostic prediction)的一个核心问题是:

目标疾病本身如何被确认?参考标准是否准确?是否所有患者都接受了参考标准?

这会引出诊断预测特有的问题,例如:

中文 英文
验证偏倚 verification bias
部分验证偏倚 partial verification bias
参考标准不完美 imperfect reference standard
谱偏倚 spectrum bias

5. 预后预测(prognostic prediction)的结局是“未来事件”

预后预测里的结局(outcome)通常是:

在某个未来时间窗口内是否发生某个临床事件。

例如:

预后结局(prognostic outcome) 中文
30 天死亡(30-day mortality) 30 天死亡
1 年复发(1-year recurrence) 1 年复发
5 年总生存(5-year overall survival) 5 年总生存
再入院(hospital readmission) 再入院
主要不良心血管事件(major adverse cardiovascular events, MACE) 主要不良心血管事件
静脉血栓栓塞发生(VTE occurrence) 静脉血栓栓塞发生

预后预测必须明确:

从什么时候开始预测?预测多长时间?结局如何定义?没有发生结局的人随访多久?

所以它天然涉及:

事件时间分析(time-to-event analysis)

生存分析(survival analysis)


6. 两者的预测变量选择逻辑也不同

预测变量(predictor)在诊断预测和预后预测中的含义不同。

6.1 诊断预测(diagnostic prediction)的预测变量

诊断模型使用的是:

当前能帮助判断疾病是否已经存在的信息。

例如:

预测变量类型 英文 例子
症状 symptom 胸痛(chest pain)、呼吸困难(dyspnea)、发热(fever)
体征 sign 心动过速(tachycardia)、低氧(hypoxia)
当前检查 current test 心电图(ECG)、D-二聚体(D-dimer)、肌钙蛋白(troponin)
影像特征 imaging feature 结节大小(nodule size)、边界(border)、密度(density)
病史 medical history 癌症史(cancer history)、既往静脉血栓栓塞(prior VTE)

这些预测变量(predictor)与当前疾病状态高度相关。

6.2 预后预测(prognostic prediction)的预测变量

预后模型使用的是:

当前能预测未来风险的信息。

例如:

预测变量类型 英文 例子
基线严重程度 baseline severity 当前病情严重程度
合并症 comorbidities 糖尿病、高血压、慢性肾病等
生物标志物 biomarkers B 型利钠肽(BNP)、C 反应蛋白(CRP)等
已接受治疗 treatment received 是否接受某治疗
功能状态 functional status 日常生活活动能力(activities of daily living, ADL)、衰弱(frailty)
既往事件 prior events 既往卒中、既往静脉血栓栓塞(VTE)
纵向趋势 longitudinal trends 实验室指标变化趋势

预后模型特别强调:

预测变量(predictor)必须在起点时间(time zero)时已经可获得,不能偷偷使用未来信息。


7. 评价指标有重叠,但重点不同

两类模型都可以评价:

  • 区分能力(discrimination)
  • 校准(calibration)

但细节和重点不同。

7.1 诊断预测(diagnostic prediction)常见指标

指标 英文
敏感度 sensitivity
特异度 specificity
阳性预测值 positive predictive value, PPV
阴性预测值 negative predictive value, NPV
似然比 likelihood ratio
受试者工作特征曲线 receiver operating characteristic curve, ROC curve
曲线下面积 area under the curve, AUC
校准 calibration

诊断模型常常用于判断:

谁需要进一步检查?谁可以排除疾病?谁需要立即治疗?

因此,以下指标很重要:

  • 敏感度(sensitivity)
  • 特异度(specificity)
  • 阴性预测值(negative predictive value, NPV)
  • 阳性预测值(positive predictive value, PPV)
  • 决策阈值(decision threshold)

例如,D-二聚体(D-dimer)在肺栓塞(PE)诊断中强调:

  • 高敏感度(high sensitivity)
  • 高阴性预测值(high negative predictive value, high NPV)

因为它常用于:

排除诊断(rule-out)

7.2 预后预测(prognostic prediction)常见指标

指标 英文
一致性指数 concordance index, C-index
时间依赖曲线下面积 time-dependent area under the curve, time-dependent AUC
整体校准 calibration-in-the-large
校准斜率 calibration slope
Brier 分数 Brier score
决策曲线分析 decision curve analysis
观察/预测比值 observed/expected ratio, O/E ratio

预后模型常常用于:

  • 风险分层(risk stratification)
  • 随访强度调整
  • 预防性治疗
  • 患者沟通
  • 资源分配

所以:

校准(calibration)尤其重要。

因为预后模型经常输出的是:

“未来 5 年风险为 12%。”

如果校准不好,这个数字本身就不可信。


8. 临床用途不同:诊断模型偏“当前决策”,预后模型偏“未来管理”

维度 诊断预测(diagnostic prediction) 预后预测(prognostic prediction)
核心问题 现在有没有病? 未来会不会发生结局?
时间方向 当前状态 未来事件
典型用途 纳入诊断 / 排除诊断(rule-in / rule-out) 风险分层(risk stratification)/ 管理
关键设计 参考标准(reference standard) 起点时间(time zero)+ 随访(follow-up)
典型偏倚 验证偏倚(verification bias) 截尾(censoring)、竞争风险(competing risk)、数据泄漏(data leakage)
常见模型 逻辑回归(logistic regression)、诊断评分(diagnostic score) Cox 模型(Cox model)、生存模型(survival model)、风险模型(risk model)
临床例子 用于肺栓塞诊断的 Wells 评分(Wells score for PE diagnosis) 用于未来卒中风险的 CHA₂DS₂-VASc 评分(CHA₂DS₂-VASc for future stroke risk)

9. 为什么这对医学人工智能特别重要?

医学人工智能(medical artificial intelligence, medical AI)论文中,经常会把这两类问题混在一起。

例如,一个模型声称预测:

脓毒症(sepsis)

但需要追问:

它是在诊断当前已经存在的脓毒症,还是预测未来 6 小时、12 小时、24 小时会发生脓毒症?

这两个问题完全不同。

如果模型使用了脓毒症诊断之后才出现的变量,比如:

  • 抗生素
  • ICU 转入
  • 血培养结果
  • 后续乳酸(lactate)

那么它可能不是在预测未来脓毒症,而是在识别已经发生的脓毒症,甚至发生了:

数据泄漏(data leakage)

再比如静脉血栓栓塞(venous thromboembolism, VTE):

问题 类型
这个呼吸困难患者现在是否已有肺栓塞(PE)? 诊断预测(diagnostic prediction)
这个术后患者未来 30 天是否会发生静脉血栓栓塞(VTE)? 预后预测(prognostic prediction)
这个肿瘤患者未来 6 个月静脉血栓栓塞(VTE)风险是多少? 预后预测(prognostic prediction)
这个腿肿患者现在是否已有深静脉血栓形成(deep vein thrombosis, DVT)? 诊断预测(diagnostic prediction)

这就是 Steyerberg 要区分二者的原因:

同样叫预测(prediction),但临床问题完全不同。


10. 与 Shmueli 的“解释 vs 预测”有什么关系?

Shmueli 区分的是:

解释(explanation) vs 预测(prediction)

Steyerberg 则是在预测(prediction)内部继续区分:

诊断预测(diagnostic prediction) vs 预后预测(prognostic prediction)

也就是说:

统计/临床建模
        ↓
解释性建模 vs 预测性建模
                  ↓
        诊断预测 vs 预后预测

Shmueli 关心的是:

模型是在解释机制,还是预测结果?

Steyerberg 进一步问:

如果是在预测,那么预测的是当前疾病状态,还是未来临床结局?

这两个区分可以放在一起理解:

问题 类型
吸烟是否导致肺癌? 解释性 / 因果(explanatory / causal)
这个肺结节现在是不是癌? 诊断预测(diagnostic prediction)
这个肺癌患者未来 5 年是否复发? 预后预测(prognostic prediction)
哪些变量最能预测复发? 预测性(predictive)
某个治疗是否降低复发? 解释性 / 因果(explanatory / causal)

11. 最实用的判断方法

看到一篇临床预测模型(clinical prediction model)论文,可以先问三个问题。

11.1 第一步:它是不是预测(prediction)?

如果问题是:

“X 是否导致 Y?”

这是:

解释 / 因果(explanation / causality)

如果问题是:

“给定 X,预测 Y。”

这是:

预测(prediction)

11.2 第二步:如果是预测(prediction),Y 是现在已经存在,还是未来才发生?

判断 类型
Y 已经存在,只是尚未确认 诊断预测(diagnostic prediction)
Y 未来才会发生 预后预测(prognostic prediction)

11.3 第三步:模型变量是否符合时间逻辑?

类型 关键检查
诊断预测(diagnostic prediction) 预测变量(predictors)是否在诊断决策时可获得?参考标准(reference standard)是否可靠?
预后预测(prognostic prediction) 预测变量(predictors)是否在起点时间(time zero)可获得?是否有数据泄漏(data leakage)?随访(follow-up)和截尾(censoring)是否处理正确?

12. 一句话总结

Steyerberg 区分诊断预测(diagnostic prediction)和预后预测(prognostic prediction),是因为:

诊断预测是在估计“当前是否已有疾病”,预后预测是在估计“未来是否会发生结局”。二者虽然都属于预测(prediction),但时间结构、数据设计、结局定义、偏倚来源、评价指标和临床用途都不同。

对临床医生来说,最直观的区别是:

诊断模型帮助医生判断“现在是什么病”;预后模型帮助医生判断“接下来会怎样”。

还没有评论,赶紧评论下,抢个沙发?