【4.1】多重假设检验:Bonferroni 和 FDR

之前对于P值的笔记中,提到过P值需要进行校正。因为P值的阈值是人为规定的,无论是多小的P值,也仅仅能代表结果的低假阳性,而非保证结果为真。即使P值已经很小(比如0.05),也会被检验的总次数无限放大。比如检验10000次,得到假阳性结果的次数就会达到 5%*10000=500次。

这时候我们就需要引入多重检验来进行校正,从而减低假阳性结果在我们的检验中出现的次数。

主要使用的校正办法有两种:

一、Bonferroni 校正

Bonferroni 校正法可以称作是“最简单粗暴有效”的校正方法,它拒绝了所有的假阳性结果发生的可能性,通过对p值的阈值进行校正来实现消除假阳性结果。

Bonferroni 校正的公式为p*(1/n),其中p为原始阈值,n为总检验次数。

如果像我们举的例子一样,原始的P值为0.05,检验次数为10000次,那么在Bonferroni 校正中,校正的阈值就等于5%/ 10000 = 0.000005,所有P值超过0.00005的结果都被认为是不可靠的。这样的话假阳性结果在10000次检验中出现的次数为 10000 * 0.000005 =0.5,还不到1次。

但是这也存在问题:Bonferroni 委实太过严格,被校正后的阈值拒绝的不只有假阳性结果,很多阳性结果也会被它拒绝。

二、 FDR(FalseDiscovery Rate) 校正

相对Bonferroni 来说,FDR温和得多,这种校正方法不追求完全没有假阳性结果,而是将假阳性结果和真阳性的比例控制在一定范围内。

举个例子,我们最开始设定的情况中进行了10000次检验,这次我们设定FDR<0.05,如果我们的检验对象为差异表达的基因,那么在10000次检验中假如得到了500个基因,那么这500个基因中的假阳性结果小于 500*5% = 25 个。

FDR的计算方法有很多种,这里介绍一个比较常用的:

BH(Benjaminiand Hochberg)法:

BH 法需要将总计m次检验的结果按由小到大进行排序,k为其中一次检验结果的P值所对应的排名。

找到符合原始阈值α的最大的k值,满足P(k)<=αk/m,认为排名从1到k的所有检验存在显著差异,并计算对应的q值公式为q = p(m/k)。

举个例子,如果我们有总共六个结果进行FDR校正:

按α=0.05进行计算:

排名第四的 P (4) = 0.03 < 0.05*46 = 0.033,符合要求

排名第五的 P (5)= 0.045 > 0.05*56 = 0.041,不满足P(k)<=α*k/m,因此在这个列表里排名前四的G2,G6,G5,G4 为具有显著差异的基因。

我们也可以用q值进行FDR校正:

排名第五的G3,其q值大于0.05,故G2,G6,G5,G4 为具有显著差异的基因。

参考资料

个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn

Sam avatar
About Sam
专注生物信息 专注转化医学