能告诉你什么
Crosstabs 在你的设备上运行与 SPSS ROC 对应的过程,最多支持四个检验变量,给出 ROC 曲线下面积、其非参数或双负指数标准误、与 AUC = .5 的比较检验,以及完整的临界值表。
- 曲线下面积:随机抽取的阳性个案得分高于随机阴性个案的概率。
- 检验的区分能力是否优于随机:给出面积的渐近 p 值与置信区间。
- 每个临界值下的灵敏度、1 − 特异度和精确率,便于选择工作点。
- Gini 指数(2·AUC − 1)以及 Kolmogorov-Smirnov 统计量,即灵敏度与 1 − 特异度之间的最大差距。
适用场景
适合使用
- 以已知的二分类结局评价诊断检验、风险评分或模型预测概率。
- 选择一个在漏诊与误报之间取得平衡的临界值。
- 在同一批个案上并列比较最多四个评分的区分能力。
改用其他方法
- 需要检验两个 AUC 之差是否显著:使用 ROC 分析,其中提供 DeLong 检验或独立组比较。
- 关心的是校准(预测概率是否准确)而非排序:AUC 不反映校准,可查看 logistic 回归中的 Hosmer-Lemeshow 检验。
- 阳性非常罕见且假阳性代价高:还需查看精确率列,因为 AUC 看起来不错时精确率可能很差。
在 Crosstabs 中如何操作
- 01
打开数据
打开每行一个个案、包含评分和真实状态的文件,并切换到“统计”模式。
- 02
选择 ROC 曲线
在“一致性与诊断”组中选择“ROC 曲线”(ROC)。
- 03
选择检验变量和状态变量
勾选最多四个数值型“检验变量”,选择“状态变量”及“状态变量的值(阳性)”。
- 04
设置方向和置信水平
在“检验方向”中指定检验结果越大还是越小越倾向阳性,并设置“置信水平(%)”。
- 05
选择标准误并运行
将“面积的标准误”设为非参数或双负指数(后者要求阳性与阴性个案数相等,否则显示非参数标准误);如有权重,将其声明为频数权重,然后点击“运行”。
计算示例
以下结果由 Crosstabs 引擎在构建本页时根据模拟数据实际计算得出,并非手工填写。
数据
100 名模拟患者,其中 40 人患病(状态为阳性)、60 人未患病。生物标志物为整数,分别从均值 62(患病)和 50(未患病)的正态分布中抽取;值越大越倾向患病。固定随机种子。
| 患病状态 | 有效 N(成列) |
|---|---|
| 阳性 | 40 |
| 阴性 | 60 |
| 检验结果变量 | 面积 | 标准误 | 渐近显著性 | 95% 置信区间 | Gini 指数 | K-S |
|---|---|---|---|---|---|---|
| biomarker | 0.791 | 0.046 | <.001 | 0.701 – 0.881 | 0.583 | 0.458 |
基于非参数假设。零假设:真实面积 = 0.5。部分取值在阳性组与阴性组之间存在结值。
| 大于或等于时判为阳性 | 灵敏度 | 1 - 特异度 | 精确率 |
|---|---|---|---|
| 26.0 | 1.000 | 1.000 | 0.400 |
| 38.5 | 1.000 | 0.900 | 0.426 |
| 44.5 | 0.950 | 0.783 | 0.447 |
| 49.5 | 0.875 | 0.517 | 0.530 |
| 52.5 | 0.825 | 0.367 | 0.600 |
| 54.5 | 0.750 | 0.350 | 0.588 |
| 59.5 | 0.525 | 0.200 | 0.636 |
| 65.5 | 0.400 | 0.033 | 0.889 |
| 71.0 | 0.175 | 0.000 | 1.000 |
| 86.0 | 0.025 | 0.000 | 1.000 |
每隔五个临界值取一行,并加上达到 K-S 统计量的临界值;工作区会列出全部临界值。
结果解读
曲线下面积为 0.791(95% 置信区间 0.701 – 0.881,p < .001):随机抽取一名患病者和一名未患病者,前者生物标志物更高的概率为 79.1%(结值按一半计)。灵敏度与 1 − 特异度之差最大(K-S = 0.458)出现在临界值 52.5 处,此时灵敏度为 0.825,特异度为 0.633。
输出表格说明
- 个案处理摘要
- 在状态变量与所有检验变量上成列删除后的有效阳性与阴性个案数。
- 曲线下面积
- 每个检验变量的面积、标准误、相对 0.5 的渐近显著性、置信区间、Gini 指数和 K-S。若两组间存在结值,脚注会给出提示。
- 曲线坐标
- 每个临界值对应的灵敏度、1 − 特异度和精确率。临界值取相邻观察值的中点,另加最小值减 1 和最大值加 1。
前提假设与注意事项
- 状态变量代表真实情况,且独立于检验本身测量。
- 个案相互独立;同一人的重复测量会夸大表观精度。
- 非参数标准误不作分布假设;双负指数标准误假设该模型成立且两组样本量相等。
- 权重须声明为整数频数权重;抽样权重会使该过程停止运行。
结果如何验证
引擎复现了 SPSS ROC 算法文档中的示例(面积 .64,标准误 .183)。在含权重的 180 例参考数据上,面积与 scikit-learn 1.9.1 roc_auc_score 及 R pROC 1.19.1 一致到 1e-12;非参数(含结值的 Hanley-McNeil)标准误在两种检验方向下均与独立的 NumPy 实现一致到 1e-12,p 值一致到 1e-9。 验证证据(英文)
常见问题
AUC 多大算好?
0.5 相当于随机,1.0 表示完全区分。粗略的惯例认为 0.7–0.8 尚可、0.8–0.9 良好、0.9 以上优秀,但关键在于该检验是否优于实践中使用的其他方法。
AUC 低于 0.5 是怎么回事?
很可能检验方向设反了:分数越低越倾向阳性。将“检验方向”改为“检验结果越小表示越倾向阳性”,面积就会变为 1 减去原值。
如何选择最佳临界值?
常见做法是使灵敏度 + 特异度 − 1(Youden 指数)最大,即面积表中报告的 K-S 统计量。若漏诊的代价高于误报,可从坐标表中选择灵敏度更高的较低临界值。
坐标表中为什么有精确率?
精确率(阳性预测值)取决于数据中阳性的比例。在阳性类别罕见时,它是对 ROC 曲线的重要补充。
相关过程
- ROC 分析ROC ANALYSIS
- 二元 Logistic 回归LOGISTIC REGRESSION
- 判别分析DISCRIMINANT
- 朴素贝叶斯NAIVEBAYES
- 比例检验PROPORTIONS
- 免费的 SPSS 替代工具:支持范围
用你自己的数据运行 ROC 曲线
打开 .sav、CSV 或 Excel 文件。所有计算都在浏览器中完成,文件不会离开你的设备。
SPSS 是 IBM Corp. 的商标。Crosstabs 与 IBM 无关联,也未获得 IBM 认可。