08 誤判率與 BH:多題同時判斷時怎麼控制誤報
每題的解答都收合在題目下方:先自己作答,再點開「看解答」核對。
先認識這些詞
這一課新出現的詞如下(前面課程已解釋過的詞不重複,完整列表見 術語表)。
- 誤判率(FPR):正常的題目被誤標為可疑的比例。
- BH 方法:一種決定要標記哪幾題的程序,用來控制 FDR。
- Simes 檢定:判斷一整批題目裡有沒有任何一題可疑。
- FDR(錯誤發現率):被標為可疑的題目中,實際上是正常的比例。
- 檢定力:真的有灌票時,方法能抓到的機率。
- p 值:如果這題其實是正常的,看到這麼極端的分數的機率。越小越可疑。
目標
讀完這課,你能手算 BH 方法與 Simes 檢定,並說出「每題誤判率」和「FDR」的差別。
白話
假設你要檢查 100 題,每題都問「這題是不是灌票?」。如果每題的判斷標準都是「看起來可疑就標記」,那麼 100 題裡可能有好幾題是誤報。
統計學提供兩種控制方式:
每題誤判率(FPR):控制「每一題是正常卻被標記」的機率,例如不超過 5%。
- 優點:保證每一題都不超過標準。
- 缺點:不保證被標記的題目裡,真正是灌票的比例。
FDR(錯誤發現率):控制「被標記的題目裡,錯誤的比例」,例如不超過 5%。
- 優點:直接控制你最在乎的事:標記出來的有多少是錯的。
- 缺點:需要更多資料才有檢定力。
下面用一個算術例子說明:每題誤判率控制得再好,標出的清單裡仍可能有很多誤報(見下方算術示範)。
三種策略
論文的共形推論用了三種策略(定義見 phase03c_protocol.md):
| 策略 | 控制什麼 | 白話 |
|---|---|---|
| A:逐題標記,控制 FDR | 被標出的題中錯誤的比例 | 標出來的清單可不可信 |
| B:逐題標記,控制每提案誤判率 | 每個正常題被誤判的機率 | 每一題被誤判的機率有沒有受控 |
| C:整批集體偵測 | 這批題中有沒有被攻擊的題(不定位) | 這批題有沒有問題,但不指出哪一題 |
為什麼標出來的會有八成是誤報?(算術示範)
假設 100 題中有 5 題是灌票,每個正常題被誤判的機率是 0.05,灌票被抓到的機率是 0.2:
- 灌票中被抓到的:5 × 0.2 = 1 題。
- 正常題中被誤判的:95 × 0.05 ≈ 4.75 題。
- 被標出的共 1 + 4.75 = 5.75 題,其中誤報 4.75 題,占 4.75 ÷ 5.75 ≈ 83%。
這不是方法錯了:每個正常題的誤判率只有 5%,但正常題有 95 題,加總後誤報數量很大。(這是算術示範,數字是假設值,不是研究的結果。)
BH 方法
BH 是控制 FDR 的常用方法。步驟如下:
- 把所有題的 p 值(越小越可疑)從小到大排序。
- 排好後,第 k 個 p 值與門檻 α × k / m 比較(m 是總題數)。
- 找出最大的 k,使得 p(k) ≤ α × k / m。
- 前 k 題全部標記。
Simes 檢定
Simes 檢定問的是整批題目:「這批題目裡,有沒有任何一題是灌票?」
計算方式:對每個 k,算 m × p(k) / k,取其中最小的那個。
看這裡
src/rq3.py第 21–28 行:_bh。src/rq3.py第 31–34 行:_simes。src/cad2.py第 19 行:conformal_p,共形 p 值的計算。- 在這裡只看 rq3 的兩個函式即可,不需要看整個 RQ3 流程。
練習
五題的 p 值是 [0.001, 0.008, 0.039, 0.041, 0.20],α = 0.05,m = 5。先自己算,再看解答。
1. BH 會標記哪幾題?
看解答
BH 會標記第 1、2 題(p = 0.001 與 0.008)。門檻依序是 0.01、0.02、0.03、0.04、0.05;只有前兩個 p 值低於門檻,最大的通過名次是 2。
2. Simes 的整批 p 值是多少?
看解答
Simes 整批 p 值 = 0.005:對 k = 1 到 5 算 m × p(k) ÷ k(分別是 0.005、0.020、0.065、0.051、0.200),取最小值。程式確認過:_bh 標記前兩題,_simes 回傳 0.005,與手算一致。
檢核
1. 每題誤判率和 FDR 控制的對象有什麼不同?
看解答
每題誤判率控制「每一題是正常卻被標記」的機率;FDR 控制「被標記的題目中,錯誤的比例」。前者是逐題的保證,後者是整份清單的保證。
2. 為什麼「標記出來的有八成是誤報」不代表方法錯誤?
看解答
誤判率的保證是對「正常題」而言:每一題被誤標的機率不超過 α。但如果灌票比例很低,正常題很多,即使每題的誤報機率很小,被標記的清單中大部分仍可能是正常題。這是統計上的正常現象,不等於方法錯誤;本研究也如實報告了這一點。
3. Simes 和 BH 回答的問題有什麼不同?
看解答
Simes 回答「整批題目裡有沒有任何一題可疑」;BH 回答「哪幾題要標記」。前者是整批的問題,後者是逐題的決定。
導航
引用文獻
- Benjamini, Y., & Hochberg, Y. (1995). Controlling the false discovery rate: A practical and powerful approach to multiple testing. Journal of the Royal Statistical Society: Series B, 57(1), 289–300. [未收入 bib]
- Simes, R. J. (1986). An improved Bonferroni procedure for multiple tests of significance. Biometrika, 73(3), 751–754. [未收入 bib]
- Bates, S., Candès, E., Lei, L., Romano, Y., & Sesia, M. (2023). Testing for outliers with conformal p-values. The Annals of Statistics, 51(1), 149–178. [bib: bates2023conformal]
- Hennhöfer, O., & Preisach, C. (2024). Leave-one-out-, bootstrap- and cross-conformal anomaly detectors. IEEE ICKG. [bib: hennhofer2024conformal]
- Vovk, V., Gammerman, A., & Shafer, G. (2005). Algorithmic learning in a random world. Springer. [bib: vovk2005algorithmic]