# ROC 与 PR 曲线阅读指南

## 适用场景
- 评估分类/诊断模型的性能
- 比较不同模型/特征的区分能力
- 选择最优分类阈值

---

## 核心阅读维度

### 1. AUC / AUROC
- **数值解读**：
  - 0.5 = 随机猜测（对角线）
  - 0.7-0.8 = 可接受
  - 0.8-0.9 = 优秀
  - >0.9 = 杰出（但也可能是过拟合信号）
- **置信区间**：是否报告了95% CI？CI窄 = 估计精确；CI宽 = 样本小或不稳定
- **与基线比较**：是否优于现有方法？差异是否有统计学意义？（DeLong检验）

### 2. PR-AUC（Precision-Recall）
- **什么时候更重要**：当正负样本极度不平衡时（如罕见病诊断），PR曲线比ROC更有信息量
- **基线**：PR曲线的基线 = 正样本比例（如正样本5%，则基线AP=0.05）
- **解读**：AP（Average Precision）> 基线多少？AP高但ROC AUC低 = 模型对正样本识别好，但假阳性多

### 3. 最优截断点
- **Youden指数**：Sensitivity + Specificity - 1 的最大值点
- **临床场景决定**：
  - 筛查（如癌症早筛）：优先高Sensitivity（不漏诊），容忍低Specificity
  - 确诊（如手术决策）：优先高Specificity（不误诊），容忍低Sensitivity
- **作者的选择**：是否根据临床需求选择了截断点？还是只用默认0.5？

### 4. 曲线形态
- **ROC左上角凸起**：越好（高Sensitivity + 高Specificity同时达到）
- **PR右上角凸起**：越好（高Precision + 高Recall同时达到）
- **交叉曲线**：两条曲线交叉 = 一个模型在某些阈值更好，另一个在其他阈值更好
- **平台期**：曲线在某段平台 = 改变阈值对该区间性能影响小

### 5. 验证策略
- **训练集 vs 测试集**：ROC是否在测试集上报告？（训练集ROC无意义，必定 inflate）
- **交叉验证**：是否用k-fold CV？折数多少？（k=5或10标准）
- **外部验证**：是否在独立数据集上验证？（金标准）
- **时间验证**：如果是时序数据，是否用未来数据验证？

---

## 常见陷阱

| 陷阱 | 说明 | 如何识别 |
|------|------|---------|
| 数据泄露 | 测试集信息用于特征选择/模型调参 | 问：特征选择是否在交叉验证循环内？ |
| 阈值报告偏差 | 只报告最优阈值，忽略实际应用阈值 | 看是否说明了阈值选择依据 |
| 不平衡数据用ROC | 正样本<5%时ROC AUC可能虚高 | 问：是否同时报告了PR曲线？ |
| 过拟合 | 训练集AUC=0.99，测试集AUC=0.75 | 比较训练/测试性能差距 |
| 置信区间缺失 | AUC=0.85但无CI，无法判断可靠性 | 看是否报告95% CI或标准误 |

---

## 批判性提问模板

1. "AUC是在训练集还是独立测试集上计算的？"
2. "如果数据不平衡，是否同时报告了PR-AUC？"
3. "最优截断点的选择依据是什么？是否符合临床场景？"
4. "置信区间宽度如何？样本量是否足够？"
5. "与现有方法比较时，是否用了DeLong检验？"
6. "验证策略是什么？k-fold CV？外部验证？时间验证？"
