p值校正,FDR(BH法)的实现过程

原理:我们要看下最常用的BH法的论文

做m次无效假设作物的数量

 

那么,被错误地拒绝了的无效假设的比例Q=V/(V+S)=V/R

所谓的FDR值就是Q的期望值,E(Q)=E(V/R)

如果无效假设是正确的(s=0且v=r),FDR值就和FWER(familywise error rate)一样,假设v=0(结合s=0,就是说假设结果一次错误都没有出),Q就为0;如果v>0(出现了假阳性),那么Q=1,P(v≥1)=E(Q)。这样的结果提示一般的FWER法控制假阳性结果的能力是很弱的;

只要有m=m0,就会出现Q=1,所以E(V/R|R>0)是不能作为控制,另外一种无效假设的控制方式是P(R>0)E(V/R|R>0).

如果P(i)≤i/m*q(i,第i次假设检验;q是设定阈值、一般为0.05),则拒绝所有无效假设Hi(数学证明请参照原文献)

这个网站写的比较清楚https://www.statisticshowto.datasciencecentral.com/false-discovery-rate/

 

方法1:JMP软件

将p值复制到软件中,找到False Discovery Rate PValue插件

按照以下设置,点OK

校正后的p值就显示在原数据表中了

方法2 R

p.adjust(p,"BH"),其中p是原始p值,BH是选定的方法

可以发现这和JMP给出的方法是一致的

如果是多因素的分析结果,p值保存在矩阵或者数据框中,可以用一下循环一次解决(6个因素)

d<-p.adjust(p[,1],"BH") #先给d赋值
i=2     #已经有了第一个因素的结果,所以从第二列开始循环
while(i<=6){
  d<-cbind(d,d<-p.adjust(p[,i],"BH"));i<-i+1    #利用cbind()实现列追加
}
write.csv(d,"1.fdr.csv")   #输出结果
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值