多重检验的p值校正:FWER和FDR
先回憶一下假設檢驗的來兩類錯誤(參考:深入理解假設檢驗的兩類錯誤和功效):
對于多重檢驗來說,假設做了m次test,V是假陽性的次數(shù),S是真陽性的次數(shù),R是V+S。 列表如下:
| Do not reject H0H_0H0? | Reject H0H_0H0?Total|||
| TRUE | U | V | m0m_0m0? |
| FALSE | T | S | m?m0m-m_0m?m0? |
| Total | m-R | R | m |
FWER: Family-wise error rate
FWER=P(V>=1)FWER = P(V >= 1)FWER=P(V>=1)
由定義可知,FWER是H0H_0H0?為真時,出現(xiàn)大于等于1次假陽性的概率。
FWER=1?P(V==0)=1?(1?α)mFWER = 1 - P(V == 0) = 1-(1-\alpha)^mFWER=1?P(V==0)=1?(1?α)m
舉個例子:α=0.05\alpha = 0.05α=0.05, m = 10次時,
FWEC=1?(1?0.05)100FWEC = 1 - (1 -0.05)^{100}FWEC=1?(1?0.05)100 = 0.994;
即α=0.05\alpha = 0.05α=0.05時100次多重檢驗,出現(xiàn)至少一次假陽性的概率為99.4%。而單次的概率是5%.
有兩個主要方法控制FWER:
- Bonferroni correction: α?=α/m\alpha* = \alpha / mα?=α/m
- Sidak correction: α?=1?(1?α)1m\alpha* = 1 - (1- \alpha)^{\frac{1}{m}}α?=1?(1?α)m1?
但是Bonferroni方法太保守,該方法會導致很高犯II類錯誤的概率,飽受批評。雖然Sidak方法求出的α\alphaα值大于等于Bonferronni的校正值,但是也是保守類型的校正。只適用于獨立的檢驗。
FDR: False discovery rate
錯誤發(fā)現(xiàn)率:
FDR=E(VR)≤FWERFDR = E(\frac{V}{R}) \leq FWERFDR=E(RV?)≤FWER
V是假陽性數(shù)(False Positive),R是拒絕H0H_0H0?的次數(shù)。
當R=0時,此時V=0, 為了使式子有意義,定義V/R = 0。
如果所有的H0H_0H0?都為真,那么FDR=FWERFDR = FWERFDR=FWER,
如果多重檢驗的H0H_0H0?部分為真,那么FDR≤FWERFDR \leq FWERFDR≤FWER.
FWER和FDR都是多重檢驗的錯誤度量,控制了FWER暗含控制了FDR。
通次采用 Benjamini-Hochberg procedure(BH)控制FDR。校正的p-value叫q-value。
給定的FDR值α\alphaα(比如:0.05),把p-value從小到大排列,根據(jù)α\alphaα值校正p-value:
q=p?m/jq = p * m / jq=p?m/j, j 為排列序號。
校正p值之后,拒絕所有q>αq > \alphaq>α的檢驗,確保FDR<=αFDR <= \alphaFDR<=α。
總結
以上是生活随笔為你收集整理的多重检验的p值校正:FWER和FDR的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PythonOcc实战——step文件导
- 下一篇: FCoE常见问题解答