跳到主要内容

08 誤判率與 BH:多題同時判斷時怎麼控制誤報

導航:← 07 洩漏 | 目錄 | A 資料與注入 →

每題的解答都收合在題目下方:先自己作答,再點開「看解答」核對。

先認識這些詞​

這一課新出現的詞如下(前面課程已解釋過的詞不重複,完整列表見 術語表)。

  • 誤判率(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 的常用方法。步驟如下:

  1. 把所有題的 p 值(越小越可疑)從小到大排序。
  2. 排好後,第 k 個 p 值與門檻 α × k / m 比較(m 是總題數)。
  3. 找出最大的 k,使得 p(k) ≤ α × k / m。
  4. 前 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]