多重假设检验与Bonferroni校正、FDR校正
2018-07-25 本文已影响404人
Thinkando
1. 为什么要校正
- 如果检验100次,我们将阈值设定为5%,那就有可能5人出现假阳性
- 如果检验1000次,我们将阈值设定为5%,那就有可能50人出现假阳性
所以,当检验次数多了,我们设定的阈值需要调整,以降低假阳性的出现!这就是为什么需要校正的原理
2. 怎么校正
2.1 Bonferroni 校正
- 简单粗暴:如果检测1000次, 阈值设为5%/1000 = 0.00005.
该方法虽然简单,但是检验过于严格,导致最后找不到显著表达的基因
2.1 FalseDiscovery Rate
- FDR: 错误发现率
比如我检测10次,每个检测有一个p值如下,校正过的q-value如下
p <- c(0.001,0.0015,0.003,0.004,0.005,0.006,0.007,0.018,0.020,0.025)
q <- p.adjust(p,method = "BH",n=length(p))
> q
[1] 0.00750000 0.00750000 0.01000000 0.01000000 0.01000000
[6] 0.01000000 0.01000000 0.02222222 0.02222222 0.02500000
q-value(i)=p(i)*length(p)/rank(p)
ps. 如果前面校正过的Q 值大于后面的,放弃校正的值,用后面小的填充。
- 对所有候选基因的p值进行从小到大排序,则若想控制fdr不能超过q,则只需找到最大的正整数i,使得 p(i)<= (i*q)/m.然后,挑选对应p(1),p(2),...,p(i)的基因做为差异表达基因,这样就能从统计学上保证fdr不超过q。
image.png假如我们设 a=0.01 那么只有p1,p2,p3 有差异表达,p4-p10 都没有