先回忆一下假设检验的来两类错误(参考:深入理解假设检验的两类错误和功效):
对于多重检验来说,假设做了m次test,V是假阳性的次数,S是真阳性的次数,R是V+S。 列表如下:
H 0 H_0 H0 | Do not reject H 0 H_0 H0 | Reject H 0 H_0 H0 | Total |
---|---|---|---|
TRUE | U | V | m 0 m_0 m0 |
FALSE | T | S | m − m 0 m-m_0 m−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_0
H0为真时,出现大于等于1次假阳性的概率。
F
W
E
R
=
1
−
P
(
V
=
=
0
)
=
1
−
(
1
−
α
)
m
FWER = 1 - P(V == 0) = 1-(1-\alpha)^m
FWER=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 FWER
FDR=E(RV)≤FWER
V是假阳性数(False Positive),R是拒绝 H 0 H_0 H0的次数。
当R=0时,此时V=0, 为了使式子有意义,定义V/R = 0。
如果所有的
H
0
H_0
H0都为真,那么
F
D
R
=
F
W
E
R
FDR = FWER
FDR=FWER,
如果多重检验的
H
0
H_0
H0部分为真,那么
F
D
R
≤
F
W
E
R
FDR \leq FWER
FDR≤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 / j
q=p∗m/j, j 为排列序号。
校正p值之后,拒绝所有 q > α q > \alpha q>α的检验,确保 F D R < = α FDR <= \alpha FDR<=α。