负二项分布和它的朋友(RNA表达量)

Feb 1, 2021

一个看似奇怪的事实

做RNAseq分析的时候,我们通常会说:表达量计数(read counts)服从负二项分布(Negative Binomial distribution,NB)。这个结论出现在几乎所有主流差异表达分析工具的文档里——DESeq2、edgeR、limma-voom——好像这是一个不言自明的前提。

但为什么?

我查过很多资料,大多数解释要么太浅(“因为数据过度离散,过dispersed”),要么直接跳到公式层面(“NB的概率质量函数是……"),要么扯到什么"等待时间"上去(“NB描述的是等待r次成功所需的试验次数”)——最后一种解释尤其让人困惑,因为RNAseq计数和"等待时间"八竿子打不着。

所以我想把这件事彻底说清楚。用一个最简单的例子,一步步推出为什么NB是自然的选择,而那个经典的等待时间定义,其实和我们的推导毫无关系。

从一个直观的例子说起

假设我们要研究某个基因在细胞A和细胞B中的表达量。

细胞内部发生了什么? 一个基因要被转录,首先要有RNA聚合酶结合到启动子上,然后开始合成。聚合酶会随机地到达和离开启动子区域,所以转录本身是一个随机过程——在任何给定的时间窗口内,合成出的mRNA分子数是随机的。

如果我们把观察时间固定(比如观察一秒),转录产生的mRNA数量大致服从Poisson分布。理由是:mRNA的产生可以看作一系列独立的"成功"事件(一次转录起始),在一个固定时间窗口内,Poisson是描述这类计数过程的自然模型。

但问题来了——Poisson有一个很强的假设:均值等于方差。

对于单细胞来说,均值和方差的关系确实大致如此。但当我们比较一群细胞(比如组织样本中的上万个细胞)时,情况完全不同。即使是同一个基因,不同细胞的表达量也可能差异巨大——有些细胞可能完全不表达,有些高表达。这种细胞间的异质性(biological variability)会导致整个群体的方差远大于均值。

这就是所谓的"过度离散”(overdispersion)。Poisson处理不了这个问题。

Gamma-Poisson层级模型

解决之道来自一个层级思想。

我们先承认:不同细胞的真实表达率(λ)本身是不同的。这种差异可以用一个分布来描述。选什么分布?在统计中,Gamma分布是一个自然的选择——因为它数学上处理起来方便,而且足够灵活,可以描述各种形状的随机变量。

于是我们构建一个两层模型:

第一层(细胞间变异): λ ~ Gamma(α, β)

这里λ代表每个细胞的真实表达率(单位时间内的mRNA平均产量)。α和β是Gamma分布的参数。均值 μ = α/β,方差 = α/β²。

第二层(细胞内随机性): 给定λ,计数X服从Poisson分布:X | λ ~ Poisson(λ)

这一层描述的是:即使两个细胞有完全相同的λ,由于转录过程本身的随机性,实际观察到的计数也会有波动。

现在,把λ积掉(marginalize out),求X的边缘分布:

$$P(X = k) = \int_0^\infty P(X=k|\lambda) \cdot P(\lambda) \, d\lambda$$

这个积分的结果是:

$$P(X = k) = \frac{\Gamma(k+\alpha)}{k! \cdot \Gamma(\alpha)} \left(\frac{\beta}{1+\beta}\right)^\alpha \left(\frac{1}{1+\beta}\right)^k$$

而这——恰好就是负二项分布的参数化形式。

通常NB写作NB(r, p),这里的等价关系是:r = α,p = β/(1+β)。或者用均值-方差参数化:均值 μ = r(1-p)/p,方差 = μ + μ²/r。

关键洞察: 推断得到的方差是 μ + μ²/r,而不是 μ。这意味着方差大于均值——模型天然就包含了过度离散。而且r越小,离散程度越大。

这就是为什么负二项分布在RNAseq分析中如此自然:它同时捕获了两层变异——细胞间的异质性(Gamma层)和细胞内的随机性(Poisson层)。

为什么不是Poisson?

如果硬要用Poisson模型,唯一的办法是假设所有细胞的λ都相同。但这是不现实的。真实数据中,不同实验条件、不同组织部位、不同细胞周期阶段,基因表达率都会有差异。

用Poisson拟合同一批细胞的数据,方差会被严重低估,导致假阳性率飙升——你本来没有差异,会被误判为有差异。

负二项分布通过引入额外的参数r(有时称为"dispersion parameter"),给了模型足够的灵活性来适应这种异质性。

和"等待时间"没有任何关系

经典的负二项分布教科书会告诉你:NB描述的是"进行直到第r次成功为止所需的试验次数"。比如抛硬币,抛到第3次正面朝上时总共抛了多少次。

这个定义在工业质量控制、排队论等领域确实有用。但——它和我们刚才的Gamma-Poisson推导毫无关系。

这两条路只是恰好得到同一个数学形式而已。

在概率论中,很多不同的随机过程确实会收敛到相同的分布——这叫"分布的等价性"。NB就是一个例子:从"等待时间"角度可以得到NB,从Gamma-Poisson层级模型也可以得到NB。但因果链完全不同。

在RNAseq的语境下,用等待时间来理解NB只会造成困惑(“我们在等待什么?"),而用Gamma-Poisson框架则直观得多:不同细胞有不同的表达率(Gamma),每个细胞内部的计数是随机的(Poisson),两者叠加产生NB。

所以下次你看到有人说"NB的 dispersion parameter r 代表自由度"或者扯什么"等待时间”,请保持警惕。那是另一个视角,和我们的生物学应用没有直接联系。

写在最后

统计模型的意义取决于它在说什么故事。

负二项分布在数学上有多种等价的定义/推导,但它们不是等价的直觉。对于RNAseq,Gamma-Poisson的故事最贴合实际——我们确实在测量一群异质性的细胞,细胞间确实有变异,而Poisson确实描述不了这种变异。

另一个有意思的点:当我们把dispersion parameter r估计出来之后,实际上是在推断这个群体有多异质。如果r很大,方差趋近于均值,NB退化为Poisson——说明细胞间比较均匀。如果r很小,方差远大于均值——说明异质性很强。这在单细胞数据里尤其有意义。

所以下次你跑DESeq2或者edgeR的时候,别忘了底层在讲什么故事。