医学

ROC 曲线与 AUC 诊断效能结果怎么写

作者 / 审校:shujufenxi 编辑部·最后审校 2026-05-03

你遇到的问题

你用某个指标或预测模型区分患者与非患者,画出了 ROC 曲线、算出了 AUC,却不知道 AUC 到底多大才算「有诊断价值」,最佳截断值该怎么定,是否要报置信区间,以及两个模型的 AUC 谁高谁低到底能不能说「显著更好」。

适用场景

适用于评价一个连续或有序指标(或预测模型输出的概率)对二分类结局(患病/未患病、事件/未事件)的判别能力。前提是有一个公认的金标准来界定真实类别,且样本中两类都有一定数量。ROC 关注的是「区分能力」,与具体截断点无关;一旦要落到某个临床决策阈值,才需要确定截断值。

正确做法

以敏感度为纵轴、1−特异度为横轴绘制 ROC 曲线,计算曲线下面积 AUC 并报告其 95% 置信区间。AUC=0.5 表示无判别能力(等于抛硬币),0.7–0.8 一般视为可接受,0.8–0.9 为良好,大于 0.9 为优秀。最佳截断值常用约登指数(Youden index = 敏感度 + 特异度 − 1)最大处确定,并在该点报告对应的敏感度与特异度。若要比较两个模型或指标的 AUC 是否有统计学差异,对同一批样本应使用 DeLong 检验,报告 AUC 差值及其 p 值,而不是仅凭两个 AUC 数值大小直接下判断。

报告示例:该生物标志物诊断早期病变的 AUC 为 0.86(95%CI [0.81, 0.91]),提示良好的判别效能。以约登指数最大确定最佳截断值为 12.5 ng/mL,此时敏感度为 82.4%、特异度为 78.9%。与传统指标(AUC=0.74,95%CI [0.68, 0.80])相比,新标志物的 AUC 显著更高(DeLong 检验,差值=0.12,p=.003)。

常见错误

错误一:只报一个 AUC 数值,不报 95% 置信区间,也不做检验就断言「我的模型比对照好」,无法说明差异是否稳定可靠。错误二:直接拿两个来自同一样本的 AUC 比大小、或用独立样本的检验方法比较配对的 AUC,正确做法是对同一批受试者用 DeLong 检验做配对比较。

需要更进一步?

如果你已经算出 AUC、约登指数和一堆敏感度特异度,却拿不准怎么组织成规范的诊断效能段落,可以把 SPSS、MedCalc 或 R 的 ROC 输出整段贴进本站的统计结果解读器,它会帮你挑出该报的数字并给出表述框架。若涉及多个模型的两两比较、截断值的临床权衡或带协变量的 ROC 分析,这类判断更需要经验,建议预约辅导。

操作步骤

SPSS

  1. 确保数据含二分类金标准(0=无病、1=有病)与一个连续检验变量。
  2. 分析→分类→ROC 曲线。
  3. 连续指标移入「检验变量」,金标准移入「状态变量」,在「状态变量的值」填入阳性取值(如 1)。
  4. 勾选「ROC 曲线」「带对角参考线」「标准误和置信区间」以及「坐标点」。
  5. 读取 AUC、95% CI 与 p;在坐标表中按约登指数最大处确定最佳截断值。

R

library(pROC)
roc_obj <- roc(dat$disease, dat$marker, levels = c('0','1'), direction = '<')
ci.auc(roc_obj) # AUC 及 95% CI(DeLong 法)
coords(roc_obj, x = 'best', best.method = 'youden', ret = c('threshold','sensitivity','specificity'))

完整示例(模拟数据)

评估某血清标志物对疾病的诊断价值,N=200(患者 120、非患者 80;模拟数据样例)。

为评估血清标志物的诊断价值,绘制 ROC 曲线(N=200,患者 120、非患者 80;模拟数据样例)。曲线下面积 AUC=0.86(95% CI [0.81, 0.91],p<0.001),提示良好区分能力。以约登指数最大为准则确定最佳截断值为 4.7,此时敏感度 0.83、特异度 0.78、约登指数 0.61,可作为临床判读的参考阈值。

统计量数值
AUC(95% CI)0.86 [0.81, 0.91]
显著性p<0.001
最佳截断值4.7
敏感度 / 特异度0.83 / 0.78
约登指数0.61

常见疑问

ROC 曲线的 AUC 是什么意思?
AUC(曲线下面积)表示随机抽取一个阳性个体其预测值高于随机阴性个体的概率,等于 0.5 相当于随机猜测,等于 1 表示完美区分。
AUC 达到多少算好?
常用经验标准:0.5 无区分力,0.7-0.8 为可接受,0.8-0.9 为良好,> 0.9 为优秀;具体阈值应结合应用场景判断。
ROC 曲线的横纵坐标分别代表什么?
纵轴是真阳性率(灵敏度 Sensitivity),横轴是假阳性率(1 − 特异度);曲线越靠近左上角说明诊断性能越好。
怎么用 ROC 曲线确定最佳临界值?
常用约登指数(Youden J = 灵敏度 + 特异度 − 1)最大处作为最佳截断点,即离左上角最近的点;也可根据漏诊/误诊代价的权衡来选择。

参考来源

用统计结果解读器生成结果段落预约辅导

工具输出请自行核对后使用。内容参考见 方法论标准

相关文章

← 返回知识库