先回忆一下假设检验的来两类错误(参考:深入理解假设检验的两类错误和功效):
对于多重检验来说,假设做了m次test,V是假阳性的次数,S是真阳性的次数,R是V+S。 列表如下:
| H 0 H_0H0 | Do not reject H 0 H_0H0 | Reject H 0 H_0H0 | Total |
|---|---|---|---|
| TRUE | U | V | m 0 m_0m0 |
| FALSE | T | S | m − m 0 m-m_0m−m0 |
| Total | m-R | R | m |
FWER: Family-wise error rate
F W E R = P ( V > = 1 ) FWER = P(V >= 1)FWER=P(V>=1)
由定义可知,FWER是H 0 H_0H0为真时,出现大于等于1次假阳性的概率。
F W E R = 1 − P ( V = = 0 ) = 1 − ( 1 − α ) m FWER = 1 - P(V == 0) = 1-(1-\alpha)^mFWER=1−P(V==0)=1−(1−α)m
举个例子:α = 0.05 \alpha = 0.05α=0.05, m = 10次时,
F W E C = 1 − ( 1 − 0.05 ) 100 FWEC = 1 - (1 -0.05)^{100}FWEC=1−(1−0.05)100 = 0.994;
即α = 0.05 \alpha = 0.05α=0.05时100次多重检验,出现至少一次假阳性的概率为99.4%。而单次的概率是5%.
有两个主要方法控制FWER:
- Bonferroni correction: α ∗ = α / m \alpha* = \alpha / mα∗=α/m
- Sidak correction: α ∗ = 1 − ( 1 − α ) 1 m \alpha* = 1 - (1- \alpha)^{\frac{1}{m}}α∗=1−(1−α)m1
但是Bonferroni方法太保守,该方法会导致很高犯II类错误的概率,饱受批评。虽然Sidak方法求出的α \alphaα值大于等于Bonferronni的校正值,但是也是保守类型的校正。只适用于独立的检验。
FDR: False discovery rate
错误发现率:
F D R = E ( V R ) ≤ F W E R FDR = E(\frac{V}{R}) \leq FWERFDR=E(RV)≤FWER
V是假阳性数(False Positive),R是拒绝H 0 H_0H0的次数。
当R=0时,此时V=0, 为了使式子有意义,定义V/R = 0。
如果所有的H 0 H_0H0都为真,那么F D R = F W E R FDR = FWERFDR=FWER,
如果多重检验的H 0 H_0H0部分为真,那么F D R ≤ F W E R FDR \leq FWERFDR≤FWER.
FWER和FDR都是多重检验的错误度量,控制了FWER暗含控制了FDR。
通次采用 Benjamini-Hochberg procedure(BH)控制FDR。校正的p-value叫q-value。
给定的FDR值α \alphaα(比如:0.05),把p-value从小到大排列,根据α \alphaα值校正p-value:
q = p ∗ m / j q = p * m / jq=p∗m/j, j 为排列序号。
校正p值之后,拒绝所有q > α q > \alphaq>α的检验,确保F D R < = α FDR <= \alphaFDR<=α。