前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >多重假设检验的三种常见方法计算

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

作者头像
生信编程日常
发布2020-05-18 15:48:24
发布2020-05-18 15:48:24
2.7K00
代码可运行
举报
运行总次数: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方法:

代码语言:javascript
代码运行次数:0
复制
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是从小到大排序的名次。

代码语言:javascript
代码运行次数:0
复制
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值的情况,比如:

代码语言:javascript
代码运行次数:0
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Bonferroni法
  • 2. Holm法
  • 3. BH法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档