在进行生物统计学的计算过程中,P值是需要进行校正的。因为P值的阈值是人为规定的,无论是多小的P值,也仅仅能代表结果的低假阳性,而非保证结果为真。即使P值已经很小(比如0.05),也会被检验的总次数无限放大。比如检验10000次,得到假阳性结果的次数就会达到 5%*10000=500次。
所以这时候我们就需要引入多重检验来进行校正,从而减低假阳性结果在我们的检验中出现的次数。
主要使用的校正办法有两种:
1、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 委实太过严格,被校正后的阈值拒绝的不只有假阳性结果,很多阳性结果也会被它拒绝。
2. 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.054/6 = 0.033,符合要求
排名第五的 P (5)= 0.045 > 0.055/6 = 0.041,不满足P(k)<=α*k/m,因此在这个列表里排名前四的G2,G6,G5,G4 为具有显著差异的基因。
我们也可以用q值进行FDR校正:
排名第五的G3,其q值大于0.05,故G2,G6,G5,G4 为具有显著差异的基因。