python怎么做q检验_FDR多重检验校正原理及Python实现方法

本文介绍了FDR(False Discovery Rate)多重检验校正的重要性,特别是Benjamini-Hochberg方法。文章解释了FDR控制相比于p-value的优势,并讨论了其假设。通过Python代码展示了如何进行T检验结合FDR校正,生成的结果包含原始p值和校正后的FDR值。此外,还提及R语言中实现FDR校正的便利性。
摘要由CSDN通过智能技术生成

数据分析中常碰见多重检验问题(multiple testing).Benjamini于1995年提出一种方法,通过控制FDR(False Discovery Rate)来决定P值的域值。 假设你挑选了R个差异表达的基因,其中有S个是真正有差异表达的,另外有V个其实是没有差异表达的,是假阳性的.实践中希望错误比例Q=V/R平均而言不能超过某个预先设定的值(比如0.05),在统计学上,这也就等价于控制FDR不能超过5%。

根据Benjamini在他的文章中所证明的定理,控制fdr的步骤实际上非常简单。

设总共有m个候选基因,每个基因对应的p值从小到大排列分别是p(1),p(2),...,p(m),则若想控制fdr不能超过q,则只需找到最大的正整数i,使得p(i)<= (i*q)/m.然后,挑选对应p(1),p(2),...,p(i)的基因做为差异表达基因,这样就能从统计学上保证fdr不超过q。

计算方法 请参考:

http://stat.ethz.ch/R-manual/R-devel/library/stats/html/p.adjust.html

> p

> p

[1] 3e-04 1e-04 2e-02

> p.adjust(p,method="fdr",length(p))

[1] 0.00045 0.00030 0.02000

> p*length(p)/rank(p)

[1] 0.00045 0.00030 0.02000

> length(p)

[1] 3

> rank(p)

[1] 2 1 3

sort(p)

[1] 1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值