FDR を制御して多重比較検定補正を行う方法

Benjamini-Hochberg 法

False discovery rate (FDR) は、真の帰無仮説を、間違って棄却した割合の期待値を表している。例えば、FDR = 0.1 のもとで 100 個の帰無仮説に対して検定を行って、20 個の仮説を棄却したとする。このとき、この棄却された 20 個の仮説のうち、間違って棄却されたと思われる仮説が 20 × 0.1 = 2 個未満である。このように、FDR を制御することによって補正を方法には、様々に提唱されている。最初に提唱されているのは、Benjamini と Hochberg による補正方法である。この方法は次のような手順で、補正を行う。

  1. FDR を決める。ここでは α とする。
  2. m 個の帰無仮説それぞれに対して検定を行い、p 値を計算する。
  3. m 個の p 値を昇順に並べて p1 ≤ p2 ≤ ... ≤ pm とする。ここで、帰無仮説 i に対応する p 値を pi とする。
  4. j = m とおく。
  5. \( p_{j} \le \frac{\alpha j}{m} \) ならば、次に進む。そうでなければ、j = j - 1 として、この手順を繰り返す。ただし、j = 1 となったとき、どの帰無仮説も棄却せずに、終了する。
  6. 帰無仮説 1、帰無仮説 2、・・・、帰無仮説 j を棄却して、終了する。

R による q-value の計算

R の p.adjust 関数を使って、Benjamini-Hochberg 法による補正を行うことができる。この関数を使用すると、p 値から q 値が計算される。仮説の棄却は、q < α を満たす仮説を棄却する。

p.values <- runif(100)
q.values <- p.adjust(p.values, method = "BH")

is.significant <- (q.values < 0.1)

References

  • Benjamini Y and Hochberg Y. Controlling the false discovery rate: a practical and powerful approach to multiple testing. J. Roy. Statist. Soc. Ser. 1995, B57:289-300. JSTOR