美文网首页小教程收藏生物信息学习R语言 生信
多重假设检验的三种常见方法计算

多重假设检验的三种常见方法计算

作者: 生信编程日常 | 来源:发表于2020-05-12 22:12 被阅读0次

    一般来说,当p.value < 0.05时,我们认为犯错误的概率很低,可以否定原假设。但是假如我们做了很多次实验,比如10000次,那么犯错误的次数可能能达到500次,我们要规避这么多的假阳性结果,就需要考虑多重假设检验。

    1. Bonferroni法

    Bonferroni是最粗暴简单的方法,当 P value ≤ α/N时,拒绝H0。理念是将阈值降低,尽量杜绝假阳性的存在,弊端就是可能会由于阈值太严格而导致阳性结果太少。

    比如,有10000次实验时,当 P value为0.05/10000 = 5e-6的时候,才有统计显著性。

    2. Holm法

    其公式为:



    target alpha level一般为0.05,横轴中的rank是从小到大排序之后的序号。

    比如:


    图中第四列alpha/m是Bonferroni法,第五列就是Holm法。图中的k就是排名,当原始p值 < alpha / (m - k + 1) 的值时,我们认为Holm校正之后仍然显著。即原始p为0.003,0.005,0.012时显著。

    在R中调用Holm方法:

    p.adjust(c(0.003, 0.005, 0.012, 0.04, 0.058), method = 'holm')
    

    输出:0.015 0.020 0.036 0.080 0.080

    R中的结果是由于要直观的与0.05 (alpha) 比较,所以输出的值其实就是 p * (m - k + 1);当出现第一个不显著的p值时(0.080),则后边的结果都是这个值了。

    3. BH法

    公式为:p * (n/i)。n是总数,i是从小到大排序的名次。

    p.adjust(c(0.003, 0.005, 0.012, 0.04, 0.058), method = 'BH')
    

    输出:0.0125 0.0125 0.0200 0.0500 0.0580 ; 前四位显著。

    另外有时候会出现相同p值的情况,比如:

    p.adjust(c(0.003, 0.005, 0.012, 0.04, 0.058, 0.06), method = 'fdr')
    

    输出: 0.015 0.015 0.024 0.060 0.060 0.060
    前两位数和后两位数一样。这是因为最后一位计算出来为0.060, 但是倒数第二位直接计算是0.0696,如果数值比最后一位还要大的话,则赋值为上一位,即0.060。前两位数也是同理 (避免出现原始p值更小但是校正后更大的情况)。

    参考:http://www.compbio.dundee.ac.uk/user/mgierlinski/talks/p-values1/p-values8.pdf

    相关文章

      网友评论

        本文标题:多重假设检验的三种常见方法计算

        本文链接:https://www.haomeiwen.com/subject/brpinhtx.html