查看原文
其他

StatQuest生物统计学 - FDR及Benjamini-Hochberg方法

冰糖 生信菜鸟团 2022-06-07

目录 

FDR是为了控制多重比较中大量升高的假阳性概率FDR可以起作用的原因在于同一总体和差异总体的p值分布不同执行FDR的一个例子——Benjamini-Hochberg方法

FDR(false discovery rate)是一个在统计学中熟知度不是太高,但是很重要的一个概念。很多的生信软件都在使用FDR对可能出现的大“假阳性”概率进行控制,比如RNA-seq的差异表达分析中,adjust p-value(padj )其实就是经过FDR校正的p值,chip-seq的经典call peak软件macs2里面有一个参数-q,其实-q就是指定的FDR cutoff值,等等。

那么FDR目的何在?

FDR是为了控制多重比较中大量升高的假阳性概率

FDR就是为了控制多重比较中出现的假阳性概率。众所周知,统计推断会有一定的假阳性,它和α值相等,一般是5%,一般情况下5%都是可以接受的假阳性值。

但是在高通量测序分析中,由于多重比较的存在,假阳性率会急剧升高。举例来说,假如一次RNA-seq需要比较10,000个基因的表达量有无差异,那么就会有10,000次统计推断,也就会有10,000*5%=500次的错误机会。而这10,000个基因不可能都是差异基因。假设有5000个基因是差异基因,假阳性率就是500/5500=9%,阳性率约升高了2倍。而实际情况下,真实差异基因远没有这么多,假阳性率只会比这个9%更加恐怖。

而FDR就是为了控制假阳性率升高而出现的的一种理念,它其实包含很多种校正方法,很常见的一种方法是Benjamini-Hochberg方法。

那么FDR是怎么发挥作用的?

FDR可以起作用的原因在于同一总体和差异总体的p值分布不同

首先先看一下抽样分布情况,模拟两种抽样方式:(1)从同一个正态总体中,抽样20000次,2次一组进行t检验,记录此时产生的10,000个p值;(2)从不同正态总体中,各抽样10,000次,2次一组进行t检验,记录此时产生的10,000个p值,那么这种抽样的p值分布如下:

  1. 来自于同一正态总体的p值,在0-1之间均匀分布,其中假阳性概率约为5%;

  2. 来自于不同正态总体的p值,在0-1之间偏态分布。

StatQuest-VIII-1

所以我们明白了来自于同一总体和来自差异总体的p值的分布是不同的,一个是均匀分布,一个是偏态分布。

假如我们将上述的两个模拟实验的p值组合成一个新的模拟实验,共有20,000个p值,那么结果就会如下图所示,在最左侧的柱子(p<0.05)中,会有大量的假阳性(红色)。而其p值分布就是组合了两种抽样的特点:右侧基本上呈均匀分布,而左侧呈现偏态分布。

假如按照右侧均匀分布的趋势,将其应用到左侧,那么基本上就可以很好地区分开左侧的真阳性和假阳性。而这个思想就是FDR可以控制假阳性的原因。

StatQuest-VIII-2

不过一般情况下,我们更关注的是p<0.05的情况,将上图中最左侧的柱子打开后,如下图所示,依然保持同样的左偏态右均匀的分布。

StatQuest-VIII-3

执行FDR的一个例子——Benjamini-Hochberg方法

Benjamini-Hochberg方法其实很简单,计算也不繁琐,只需要2步即可:

  1. 将所有的p值按照大小顺序进行排序;

  2. 从最大p值开始计算,最大的数值没有变化,

    剩余adj p.val计算方法为

    其中,rank of p.val是每个p值的秩,Max rank是最大秩。

以下图中数据为例,首先将p值按照大小进行排序。

然后,从0.91开始计算,0.91保持不变。

StatQuest-VIII-4

如此一个FDR过程就完成了,原本显著的0.01变为0.1,不再显著。基本上一个FDR过程可以很好的将假阳性概率维持在0.05(根据α值而定)。

其实在RNA-seq的差异表达分析中,不只是使用FDR控制假阳性,还会有Independent Filtering(独立筛选)去降低假阴性,而FDR并不能控制假阴性,反而会加重假阴性,错失很多差异基因,例如DESeq2和edgerR都有Independent Filtering过程,为何会这样?请见StatQuest生物统计学 - Independent Filtering

参考资料

StatQuest课程:https://statquest.org/video-index/


猜你喜欢

生信基础知识100讲

生信菜鸟团-专题学习目录(5)

生信菜鸟团-专题学习目录(6)

生信菜鸟团-专题学习目录(7)

还有更多文章,请移步公众号阅读

▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。



      

    



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存