当我们进行一次假设检验,以alpha=0.05作为检验水准(即小概率事件界值),如果做出P<0.05,认为组间差异有统计学意义时,其实我们有5%的概率推断出错了,没办法,这就是我们假设检验的出错概率。 可是当我们进行基因表达差异分析时,往往分析上万个基因,比如就是10000个吧!那我们就得进行10000次假设检验,如果我们得到3000次检验P<0.05,认为表达有差异。那按照5%的出错概率,就有150次的结果是假阳性,那这个结果是我们无法承受的。于是。。。 于是Bonferrnoi就提出一种方法,他建议如果多次比较,就应该拿我们最初定的0.05界值去除以比较的次数。比如要比较3次,则调整alpha’=0.05/3次=0.0167,意思是假设检验只有P<0.0167在认为有统计学意义。可是如果我们比较刚才说的10000次检验,那alpha'=0.000005,统计检验要得到P<0.000005是太严格了,几乎不可能,那又会错过很多真正的阳性结果。于是。。。 于是Benjamini and Hochberg在1995年第一次提出了FDR的概念,其出发点就是基于Bonferroni的保守性,并给出了控制FDR( false discovery rate,错误发现率)的方法。不过他们的方法也有其保守性。所以随后人们开始研究更加powerful的方法,现有的方法有Storey的, Broberg的,Dalmasso的,Guan的,Strimmer的等等。 比如我们检验10000个基因(m),发现有差异的为1000个(R),其中有100个是错的(V),则q=V/R,即FDR。如果我们想控制出错的概率,只要制定q的界值即可,一般q<0.05。关键是如何控制呢? 设总共有m个候选基因,每个基因对应的p值从小到大排列分别是 p(1),p(2),...,p(m),则若想控制FDR不能超过q,则只需找到最大的正整数i,使得 p(i)<= (i*q)/m.然后,挑选对应p(1),p(2),...,p(i)的基因做为差异表达基因,这样就能从统计学上保证FDR不超过q。 手工太傻,R软件有qvalue包,专门进行计算的。 |
|