跳到主要内容

临床医学与生存分析

ROC 曲线诊断分析

评估连续变量或模型预测概率对二分类疾病状态的诊断区分效能,支持按分组变量进行亚组诊断效能对比。

更新日期 2026-08-29 生存

这篇能回答什么

ROC(Receiver Operating Characteristic)诊断分析回答的是:「一个连续得分或模型概率,能多好地把金标准阳性与阴性分开」。它遍历所有可能截断,画出假阳性率(1−特异度)与真阳性率(灵敏度)的轨迹,用曲线下面积 AUC 概括区分能力,再用尤登指数选出灵敏度与特异度之和最大的截断值。

适合:金标准为二分类(患病/未患病、事件/非事件),预测指标为连续标志物、量表总分或二元逻辑回归给出的概率。可同时比较最多 20 个指标;可选一个定类变量做亚组 AUC。

什么时候不该用

金标准不是两分类、或阳性事件带随访时间与删失时,主分析应是Kaplan-Meier或Cox 回归,而不是把时间当成普通得分。关心预测概率是否「校准」(10% 的人里是否真有约 10% 发病)时,应看列线图与校准曲线。两种测量方法的一致性(而不是诊断金标准)用Bland-Altman。

如何选择方法

先分清问题是诊断区分、生存预后还是预测校准。有金标准 0/1 和连续得分,用 ROC;要生存曲线或 HR,用 KM / Cox;要把回归做成打分尺并看校准,用列线图;比较两种定量测量的偏差与一致性界限,用 Bland-Altman。

  • ROC 曲线诊断分析:1 个二元金标准,1–20 个连续诊断指标,0–1 个亚组;输出 AUC、Youden 截断、灵敏度与特异度。

  • 二元逻辑回归:先建模得到预测概率,再把概率送入 ROC。

  • 列线图:强调可操作的打分与校准,而不是只报 AUC。

  • Cox / KM:结局是带删失的时间,不是单一时点的患病状态。

  • Bland-Altman:两种连续测量之差,没有「金标准阳性」这一说。

输入、输出与限制

输入

金标准必须恰好两个水平,阳性按编码 1 计算。诊断指标须为定量(标志物浓度、模型得分);方向为「数值越大越倾向阳性」。分组可选,须为定类。

  • 诊断指标:最少 1 个,最多 20 个,定量。

  • 金标准:最少 1 个,最多 1 个,二元定类。

  • 分组变量:最少 0 个,最多 1 个,定类。

输出

效能表按 AUC 从高到低排列各指标:AUC、Youden 最佳截断、该截断下的灵敏度与特异度。图为 ROC 轨迹或各指标 AUC 对比(含 0.5 无区分参考)。分组时按亚组分别估计并做对比图。文字洞察给出阳性/阴性人数与最优指标。

产品限制

  • 有效样本至少 20 条;金标准必须是二分类。

  • 阳性标签固定为 1;若数据里阳性编成 0,AUC 会方向颠倒。

  • 最佳截断只按 Youden 指数(灵敏度 + 特异度 − 1)取最大,不按指定灵敏度或成本。

  • 诊断指标最多 20 个;分组最多 1 个,亚组有效 N 仍须满足下限。

  • AUC 衡量区分度,不自动给出校准曲线或决策曲线。

案例

研究问题。 用连续「预测分数」和对照方法「方法A」区分金标准阳性与阴性,比较哪一个 AUC 更高,并给出 Youden 意义下的工作点(截断、灵敏度、特异度)。

教学示例来自临床随访表,工作表为「diagnostic」,有效样本量 220(阳性 106、阴性 114)。列包括金标准、预测分数、方法A、方法B、年龄、标志物。本页比较预测分数与方法A(绑定未纳入方法B)。下载后可在工作台按同样角色复现本页表格。

下载教学示例表(临床随访)

在 StatsX 中操作

  1. 步骤 1 · 上传表格

    打开工作台,将 Excel / CSV / JSON 拖入上传区。本案例使用临床随访 xlsx,确认工作表为「diagnostic」。单文件不超过 20 MB。

  2. 步骤 2 · 查看画像与质量

    确认金标准恰有两个水平且阳性为 1,预测分数与方法A 为定量。不要把年龄误当作金标准。

  3. 步骤 3 · 选择「ROC 曲线诊断分析」

    在算法目录搜索「ROC」或「诊断」,点选 ROC 曲线诊断分析。

  4. 步骤 4 · 指定变量并运行

    金标准勾选「金标准」;诊断指标勾选「预测分数」与「方法A」(最多 20 个)。若要按性别等亚组分别算 AUC,再放入一个分组变量。点击运行分析。

  5. 步骤 5 · 阅读结果

    先核对阳性/阴性人数,再比较 AUC,最后读 Youden 截断及其灵敏度、特异度。写论文时同时报告样本构成,不要只抄 AUC。

StatsX 工作台上传临床诊断教学示例
将教学示例表拖入工作台上传区。
列画像
列画像给出类型与唯一值,便于确认金标准为二元、指标为定量。
在目录中选择 ROC 曲线诊断分析
在算法目录中选定「ROC 曲线诊断分析」。
为 ROC 指定金标准与诊断指标
金标准选金标准,诊断指标勾选预测分数与方法A。

如何阅读输出

下表由同一份教学示例在 StatsX 中运行 ROC 得到。有效样本 220,阳性 106、阴性 114。预测分数 AUC = 0.8651,Youden 截断 0.706,灵敏度 0.764,特异度 0.851;方法A 的 AUC = 0.8504,截断 0.642。按 AUC,预测分数略优;两法都明显高于 0.5 的无区分线。

ROC 曲线诊断效能评估表 (因变量: 金标准)
预测指标/模型AUC 曲线下面积最佳截断值 (Cut-off)灵敏度 (Sensitivity)特异度 (Specificity)
预测分数0.86510.7060.76420.8509
方法A0.85040.6420.77360.8246

左右滑动可查看完整表格

注:最佳截断值 (Cut-off value) 依据尤登指数 (Youden's Index = 灵敏度 + 特异度 - 1) 的最大值计算得出。

ROC 诊断效能结果表
工作台中的 ROC 表,数字应与上表一致。
各诊断指标 AUC 对比
AUC 对比(参考线 0.5);完整截断与灵敏度、特异度以表为准。

【最佳指标】预测分数 AUC=0.865(诊断价值良好);Youden 最优截断=0.706,灵敏度=0.764,特异度=0.851,Youden 指数=0.615。

解读顺序:阳性/阴性构成是否极端 → AUC 相对 0.5 与相对对照方法 → Youden 点是否符合临床更在意漏诊还是误诊。Youden 把灵敏度与特异度同等加权;筛查场景若更不能漏诊,应在曲线上另选高灵敏度工作点,而不是把 0.706 当成唯一「最佳」。AUC 高不等于校准好,也不能代替生存分析。

理论与公式

对每个阈值 c,把得分 ≥ c 判为阳性。灵敏度(真阳性率)与特异度、假阳性率定义为:

ROC 是 FPR 为横轴、Se 为纵轴的曲线。AUC 等于该曲线下面积,也等于随机抽一阴一阳时,阳的得分高于阴的概率:

StatsX 的截断最大化尤登指数 J = Se + Sp − 1,等价于最大化 TPR − FPR。经验上 AUC 0.5 为随机,0.7–0.8 可接受,0.8–0.9 良好;本案例预测分数 0.865 落在良好区间。这些分档是沟通习惯,不是假设检验。阳性编码必须为 1,否则曲线相对对角线翻转。

注意事项

  • 金标准本身若有误分类,AUC 会被顶或被压,不是指标单独的问题。

  • Youden 截断来自本样本,换队列应重新估计或做外部验证,不宜直接写进试剂说明书。

  • 类别极不平衡时,高 AUC 仍可能对应很低的阳性预测值,需结合患病率。

  • 多个指标比较不要只看点估计差 0.01 就宣布「显著更优」,除非另做 AUC 差值检验。

  • 亚组拆分后每组仍须满 20 例且金标准保持两分类,否则该亚组会被跳过。

  • 不要把随访时间或删失状态直接当 ROC 得分;时间—事件应使用生存方法。

常见问题

参考文献

  • 陈峰. 医用多元统计分析方法[M]. 中国统计出版社.

  • Hanley, J. A., & McNeil, B. J. The Meaning and Use of the Area under a Receiver Operating Characteristic (ROC) Curve[J]. Radiology, 1982, 143(1): 29–36.

  • Youden, W. J. Index for Rating Diagnostic Tests[J]. Cancer, 1950, 3(1): 32–35.

  • Steyerberg, E. W. Clinical Prediction Models[M]. Springer.