教程 ·

列线图 Nomogram + DCA 决策曲线用 AI 一句话完成 — 临床预测模型可视化全攻略

列线图(Nomogram)与决策曲线分析(DCA)完整教程:用 AI 一句话构建临床预测模型,自动输出列线图可视化、DCA 净获益曲线、校准曲线及 APA 格式论文报告模板。

导师要求"画个列线图",审稿人说"要加决策曲线分析"——这两件事放在 SPSS 里根本找不到,R 里的 rms + dcurves 包代码写半天还不一定对。这篇教程教你用 AI 一句话跑完整个流程:Nomogram 可视化 + DCA 净获益 + 校准曲线——全套 SCI 临床预测模型标准输出。


临床预测模型的三道坎:建模、可视化、临床实用性

在临床医学、流行病学、公共卫生研究中,多因素 Logistic 回归建好了不代表完事——审稿人和导师往往还要求三件事:

  • 列线图(Nomogram):把多变量回归模型转化为临床医生可手算的图形工具,直观呈现每个预测因素对结局概率的贡献
  • 校准曲线(Calibration Curve):验证模型预测概率与实际发生率的吻合程度,是模型"准不准"的核心指标
  • 决策曲线分析(DCA,Decision Curve Analysis):评估在不同阈值概率下做临床决策时,使用该模型相较于"全治"或"全不治"策略的净获益,是模型"有没有用"的核心指标

传统流程需要:SPSS 建模 → 导出系数 → 手动在 R 里写 rmsnomogram() 函数 → 再用 dcurves 包做 DCA → 出图 → APA 格式写结果。每一步都是门槛。

ChatSRS 把全套流程压到一句话。


核心概念:搞清楚再下手

1. 列线图(Nomogram)是什么

Nomogram(列线图,又称诺模图)是将多变量预测模型转化为可视图形的工具,原理是把回归方程各变量的系数映射为图上的刻度轴,使临床医生无需计算机即可估算个体患者的预测概率。

图形结构通常包含:

  • 每个预测变量对应一条刻度轴(上方)
  • 顶部的总分轴(Points),每个变量的取值对应一个分值
  • 底部的总分 -> 预测概率转换轴(Total Points → Predicted Probability)

读图方法:对每个预测变量的实测值向上画垂线至 Points 轴,读出分值;将所有分值相加得到总分;再从总分向下画垂线至概率轴,即为该患者的预测风险概率。

2. 校准曲线(Calibration Curve)

校准曲线(又称 Calibration Plot)检验模型预测值与实际观测值之间的一致性:

  • X 轴:模型预测概率(Predicted Probability)
  • Y 轴:实际观测概率(Observed Probability,分十组计算)
  • 理想曲线:45 度对角线
  • 配套检验:Hosmer-Lemeshow 检验(p > .05 表示校准良好)

校准好的模型其散点应紧贴对角线;偏离对角线越远,模型越高估或低估风险。

3. 决策曲线分析(DCA)与净获益

DCA 由 Vickers & Elkin(2006)提出,核心指标是净获益(Net Benefit)

Net Benefit = (TP / N) - (FP / N) × [pt / (1 - pt)]

其中:

  • TP = 真阳性数,FP = 假阳性数,N = 总样本量
  • pt = 阈值概率(Threshold Probability),即医生愿意接受"为了发现 1 个真病例,多治疗多少人"的临界值

DCA 图的三条基准线

曲线含义解读
预测模型曲线使用本模型做决策时的净获益越高越好
All(全治策略)假设所有人均为阳性,全部干预低阈值时有价值
None(全不治策略)净获益恒为 0基准线

判断标准:在临床有意义的阈值概率范围内(通常 0.10-0.50),若预测模型曲线高于 All 和 None 两条基准线,则模型有临床实用价值。


案例数据:急性胰腺炎重症转化风险预测模型

研究背景

某三甲医院回顾性研究纳入 520 例急性胰腺炎住院患者,目标是构建重症急性胰腺炎(SAP)早期预测列线图,辅助急诊医生在入院 24 小时内识别高危患者。

变量设置

outcome        是否进展为重症(0 = 轻中症,1 = 重症)  -- 因变量(二分类)
age            年龄(岁,连续变量)
apache2        APACHE II 评分(入院 24 h,连续变量)
bun            血尿素氮(mmol/L,连续变量)
crp            C 反应蛋白(mg/L,连续变量)
pleural_eff    胸腔积液(0 = 无,1 = 有)
hematocrit     血细胞比容(%,连续变量)

研究设计:回顾性队列,多因素 Logistic 回归筛选独立预测因素,随后构建列线图 + 校准曲线 + DCA。

注意:本研究报告的效应量指标为 OR(优势比),而非 HR(风险比)或 RR(相对危险度)。OR 来自 Logistic 回归(横断面/病例对照);HR 来自 Cox 回归(生存分析);RR 来自前瞻性队列研究频率对比。三者不可互换,临床研究报告时需明确使用对应指标。


用 AI 一句话完成列线图 + DCA

chatsrs.com 上传数据后输入:

"以 outcome(重症急性胰腺炎)为因变量,以 age、apache2、bun、crp、pleural_eff、hematocrit 为预测变量,构建临床预测模型,完成以下分析:

  1. 多因素 Logistic 回归筛选独立预测因素(输出 OR、95% CI、p 值三线表)
  2. 基于显著变量构建列线图(Nomogram),含每个变量的 Points 刻度轴
  3. Bootstrap 1000 次内部验证,输出校准曲线(Calibration Curve)+ Hosmer-Lemeshow 检验
  4. 决策曲线分析(DCA),阈值概率范围 0.05-0.60,显示模型、All、None 三条曲线
  5. 模型区分度:C 统计量(= AUC)及 95% CI
  6. 输出 APA 7th 格式中文文字描述"

60 秒后,ChatSRS 输出列线图图片、校准曲线图、DCA 图和完整结果表格。


输出结果怎么读

输出 1:多因素 Logistic 回归三线表

表 1  重症急性胰腺炎独立预测因素的多因素 Logistic 回归分析(N = 520)

变量                B        SE      Wald     p           OR      95% CI
常数            -9.814    1.623   36.57    <.001       —       —
年龄(每岁)     0.041    0.018   5.19     .023 *      1.04    [1.01, 1.08]
APACHE II(每分)0.218    0.047   21.51    <.001 ***   1.24    [1.13, 1.36]
血尿素氮(每单位)0.097   0.034   8.14     .004 **     1.10    [1.03, 1.18]
C 反应蛋白(每单位)0.008  0.003   7.88     .005 **     1.01    [1.00, 1.01]
胸腔积液(有 vs 无)1.342 0.318   17.80    <.001 ***   3.83    [2.05, 7.14]
血细胞比容(每%)  0.062  0.029   4.59     .032 *      1.06    [1.01, 1.12]

注:* p < .05,** p < .01,*** p < .001。
   参照类别:胸腔积液 = 无。OR > 1 为重症危险因素。

解读要点

  • 胸腔积液(OR = 3.83)和 APACHE II 评分(OR = 1.24/分)是效应量最大的危险因素
  • 6 个变量均独立有统计学意义,全部纳入列线图构建
  • 所有 OR 的 95% CI 均不含 1

输出 2:列线图(Nomogram)

ChatSRS 自动生成包含以下元素的列线图:

图 1  重症急性胰腺炎风险预测列线图

顶部:Points 刻度轴(0-100 分)
---------------------------------------
年龄(岁)       |---刻度---|       0-100 分
APACHE II(分)  |---刻度---|       0-100 分
血尿素氮(mmol/L)|---刻度---|       0-100 分
C 反应蛋白(mg/L)|---刻度---|       0-100 分
胸腔积液         无=0   有=约52分
血细胞比容(%)  |---刻度---|       0-100 分
---------------------------------------
Total Points      0    50   100   150   200
预测概率          0.05 0.20 0.50  0.80  0.95

使用方法示例:某患者年龄 62 岁(32 分)、APACHE II = 12 分(58 分)、BUN = 18 mmol/L(44 分)、CRP = 120 mg/L(20 分)、有胸腔积液(52 分)、血细胞比容 = 43%(18 分),总分 = 224 分,对应预测概率约 87%,属于高危患者。

输出 3:校准曲线 + Bootstrap 验证

表 2  模型校准指标(Bootstrap 1000 次内部验证)

指标                     原始值        Bootstrap 校正值
C 统计量(AUC)          0.891         0.873
Brier Score              0.112         0.121
Hosmer-Lemeshow 检验     chi^2(8) = 7.23,p = .512

注:Bootstrap 校正值反映模型的乐观性校正后真实性能。
   Brier Score 越小越好,低于零信息模型基准值(= 患病率 × (1 - 患病率))表示模型优于随机猜测。
   Hosmer-Lemeshow p > .05 表示模型校准良好。

怎么看

  • C 统计量(= AUC)= 0.891,Bootstrap 校正后 = 0.873,"乐观性"仅 0.018,内部验证良好
  • 校准曲线拟合散点紧贴 45 度参考线,Hosmer-Lemeshow p = .512 > .05,校准良好

输出 4:决策曲线分析(DCA)

图 2  临床预测模型决策曲线分析(DCA)

净获益(Net Benefit)
 |
0.30|        ____预测模型____
 |       /                   \
0.20|      /                     \
 |    /    All                    \
0.10|    ___________________________|____
 |                                  None (=0)
0.00|___________________________________
   0.0    0.1    0.2    0.3    0.4    0.5    0.6
              阈值概率(Threshold Probability)

在阈值概率 0.10-0.50 范围内:
  预测模型净获益均高于 All 策略和 None 策略
  模型在 pt = 0.20 时净获益最大(Net Benefit = 0.267)

怎么看

  • 在临床最常用的阈值范围(0.10-0.50)内,模型曲线始终高于 All 和 None 两条基准线
  • 这意味着:使用本预测模型做临床决策,优于"所有患者都按重症处理"或"所有患者都按非重症处理"
  • 结论:该列线图具有临床实用价值

论文里怎么报告(APA 7th 格式)

APA 7th 没有专门针对 Nomogram/DCA 的条目,临床医学期刊(如 JAMA、BMJ、Ann Surg)通常参照 TRIPOD 声明(Transparent Reporting of a multivariable prediction model for Individual Prognosis Or Diagnosis)的规范写法:


方法节(统计分析部分)

采用多因素二元 Logistic 回归筛选重症急性胰腺炎的独立预测因素,以 OR 及 95% CI 表示效应量。基于多因素分析结果,应用 R 4.4 中 rms 包构建个体化风险预测列线图(Nomogram)。采用 Bootstrap 法(重抽样 1000 次)进行内部验证,报告校正后 C 统计量及 Brier Score 评价模型区分度和总体预测精度。校准曲线评估模型校准度,以 Hosmer-Lemeshow 检验(alpha = .05)为判断标准。采用决策曲线分析(Decision Curve Analysis,DCA)评估不同阈值概率下模型的临床净获益,并与"全治"和"全不治"两种极端策略进行比较。统计检验水准 alpha = 0.05(双尾)。


结果节(多因素回归部分)

多因素 Logistic 回归分析结果显示,年龄(OR = 1.04, 95% CI [1.01, 1.08], p = .023)、APACHE II 评分(OR = 1.24, 95% CI [1.13, 1.36], p < .001)、血尿素氮(OR = 1.10, 95% CI [1.03, 1.18], p = .004)、C 反应蛋白(OR = 1.01, 95% CI [1.00, 1.01], p = .005)、胸腔积液(OR = 3.83, 95% CI [2.05, 7.14], p < .001)和血细胞比容(OR = 1.06, 95% CI [1.01, 1.12], p = .032)均为重症急性胰腺炎的独立危险因素。


结果节(预测模型性能部分)

基于上述 6 个独立预测因素构建列线图,模型原始 C 统计量(C-index)为 0.891(95% CI [0.858, 0.924]),Bootstrap 1000 次内部验证后校正 C 统计量为 0.873,校正 Brier Score = 0.121。Hosmer-Lemeshow 拟合优度检验结果显示模型校准良好,chi^2(8) = 7.23, p = .512。校准曲线散点紧贴参考对角线,未见系统性高估或低估趋势。

决策曲线分析结果显示,在阈值概率 0.10-0.50 范围内,本预测模型的净获益均高于"全治"(All)和"全不治"(None)两种参照策略,提示该列线图具有良好的临床实用性。


APA 格式规范要点汇总

指标格式示例
OR + 95% CIOR = 3.83, 95% CI [2.05, 7.14]
C 统计量/AUCC = 0.891, 95% CI [0.858, 0.924]
Hosmer-Lemeshowchi^2(8) = 7.23, p = .512
Bootstrap 次数Bootstrap 重抽样 1000 次
p 值格式p = .023(小数点前不写 0);p < .001

注意:C 统计量(C-index)数值上等于 AUC,但叫法不同——预测模型文献中更多写 C-index,ROC 语境下写 AUC,两者本质相同,同一篇文章用一种写法即可保持一致。


TRIPOD 声明关键报告条目(论文投稿必备)

SCI 临床预测模型类文章常在 Methods 节末尾注明"本研究报告遵循 TRIPOD 声明"。以下是最常被遗漏的四个条目:

TRIPOD 条目要求ChatSRS 对应输出
10b报告内部验证方法及重抽样次数Bootstrap 1000 次,自动报告
13b给出模型性能的置信区间C-index 95% CI 自动计算
17展示校准曲线图形自动生成
18决策曲线分析(2015 年后期刊主流要求)DCA 图自动生成

常见问题 FAQ

Q1:Nomogram 里各变量的分值(Points)是怎么算出来的?

A:Points 由各预测变量的回归系数(Logistic 回归的 B 值)映射而来。rms 包的 nomogram() 函数以所有变量中效应最大的那个为基准(设为 100 分),其他变量按系数比例缩放得到各自的分值刻度。这意味着:Points 轴上的刻度本质是相对分值,不同研究的列线图分值无法跨研究比较。

Q2:C 统计量(C-index)和 AUC 是一回事吗?如何判断好坏?

A:在二分类 Logistic 回归中,C 统计量数值上等于 AUC;在生存分析中,Harrell's C-index 是 AUC 的推广形式,两者概念相关但数值并不相等,不可互称"别名"。判断标准:C < 0.70 辨别力差;0.70-0.80 可接受;0.80-0.90 良好;> 0.90 优秀(Hosmer & Lemeshow, 2000)。本例 C = 0.891,属于"良好"级别。注意:C 统计量评估的是排序区分能力(哪个患者风险更高),而不是绝对概率的准确性——后者由校准曲线评估,两者缺一不可。

Q3:DCA 的阈值概率范围怎么定?

A:阈值概率(pt)应覆盖临床医生实际决策的概率区间,通常参照以下原则:(1) 结局发生率附近的范围(本例 SAP 发生率约 28%,重点关注 0.10-0.50 区间);(2) 治疗获益与风险的权衡范围(高风险干预的起点 pt 往往更高);(3) 一般报告 0.05-0.60 为安全范围,但图示时以 0.10-0.50 作为主要解读区间。ChatSRS 默认输出 0.05-0.60 的完整范围,同时在文字描述中自动聚焦临床有意义的区间。

Q4:Bootstrap 内部验证和外部验证的区别是什么?发表 SCI 需要哪种?

A:Bootstrap 内部验证(Internal Validation)在原始数据集上重抽样,评估模型的"乐观性"(即训练集上的 C 统计量相比真实性能高出多少),校正后 C 统计量更接近模型实际预测能力。外部验证(External Validation)需要独立的验证集(另一家医院、另一时段数据),是预测模型研究的"金标准"。高分 SCI 期刊(如 The Lancet、JAMA 系列)通常要求外部验证;多数中等级别临床期刊接受仅有 Bootstrap 内部验证的研究,但会将"外部验证"列为 Limitations。ChatSRS 同时支持两种验证方式——若你有独立验证数据,在指令中说明"用 validation_dataset.csv 做外部验证"即可。

Q5:OR 和 HR 在临床预测模型里有什么区别,能混用吗?

A:绝对不能混用。**OR(优势比)**来自 Logistic 回归,适用于横断面研究和病例对照研究,结局变量是二分类(是否发生);**HR(风险比)**来自 Cox 比例风险回归,适用于生存分析(考虑到达结局的时间),结局变量是"时间到事件"。两者在数值上也不相等:当事件发生率超过 10%,OR 会高估 RR(相对危险度);HR 与 RR 在随访期固定时才近似相等。本文示例是横断面回顾性研究,因此正确使用 OR;若你的数据有明确随访时间和截尾数据,应改用 Cox 回归报告 HR。ChatSRS 在输入指令时会自动识别数据类型并选择正确模型。


小结

临床预测模型的发表标准正在快速提升——单独一张 ROC 曲线已经不够,审稿人越来越多地要求"列线图 + 校准曲线 + DCA"三件套。ChatSRS 把这个流程从"需要熟悉 R 语言的 rms/dcurves 包"压缩为一句自然语言指令,自动输出:

  • 多因素 Logistic 回归三线表(含 OR 及 95% CI)
  • 列线图(Nomogram)可视化图形
  • Bootstrap 1000 次校准曲线 + Hosmer-Lemeshow 检验
  • C 统计量(含 Bootstrap 校正值)
  • 决策曲线分析(DCA)图形 + 净获益解读
  • APA 7th 格式可直接粘贴进论文的中文描述

关键记住:C 统计量看区分力,校准曲线看准确性,DCA 看临床实用性——三者角度不同、缺一不可,这正是临床预测模型评价的完整闭环。


相关阅读


本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。