跳至主要内容

读懂负二项分布:完整指南

探索负二项分布的细微之处及其应用。学习如何高效建模计数数据。通过实例与可视化加深理解。
· 10分钟 阅读

使用 AI 探索

在我从事量化金融的十年里,见过不少统计分布——名字既耐人寻味又极具实用价值的,非负二项分布莫属。在分析交易模式和风险模型时我发现,尽管它的名字略显“消极”,但它对许多简单模型难以刻画的计数过程提供了独到洞见。

与泊松分布等更简单的模型相比,负二项分布为此类情境提供了更为灵活的建模框架。它是二项分布的自然延伸,适用于“直到发生若干次成功所需的试验次数”这类问题,而非“在固定次数试验中的成功次数”。

在本全面指南中,我们将探讨负二项分布的数学基础、实际应用,以及在 Python 与 R 中的实现。从基本性质到进阶用法,帮助您系统掌握这一强大的统计工具。

什么是负二项分布?

负二项分布起源于18世纪对博弈概率的研究。这是一种离散概率分布,用于刻画在达到预定成功次数之前经历的失败次数,前提是独立同分布的伯努利试验,且每次试验成功概率相同。

直观理解这一分布,可以想象一个简单实验:面试候选人,直到找到3位合格者为止。该分布就用来建模在找到这3位合格者(成功)之前需要经历多少次不合格面试(失败)。这与二项分布本质不同,二项分布刻画的是在固定面试次数中找到的合格者数量——例如在恰好20次面试中找到的合格者数。

由此可见,尽管“负二项”这个名字可能让人困惑,但它并不包含通常意义上的“负面”。“负”的来源其实是其历史推导中涉及负指数的缘故。

负二项分布的应用场景

负二项分布的用途广泛。在我最熟悉的金融领域,它可用于建模达到目标利润水平所需的交易天数,或审查多少份信贷申请才能找到若干位合格借款人等情景。

更一般地说,当计数数据的方差大于均值(即过度离散)时,负二项分布尤为有用。泊松分布假设均值等于方差,但现实世界的计数数据往往波动更大。以流行病学为例,疾病病例数常常比泊松模型的预测更易波动,此时用负二项分布建模传播更为合适。

遗传学家在分析测序数据时也依赖该分布。在 RNA 测序实验中,基因表达水平差异显著且变异性高。负二项分布可以对每个基因的比对读段数建模,同时考虑技术与生物学变异,从而比假设方差恒定的方法更准确地识别差异表达基因。

在生态学研究中,研究者用它来建模物种丰度。以鸟类种群为例:有些区域鸟类稀少,而另一些区域则成簇分布,导致方差升高。负二项分布能有效刻画这种簇状分布,帮助生态学家理解种群动态并制定保护计划。

负二项分布的特征

负二项分布由两个关键参数决定其形状与行为。理解这些参数及其数学表示,有助于把握该分布如何刻画现实现象。下面系统展开。

数学表示与参数

负二项分布有两个基本参数:

  1. r - 目标成功次数(正整数)
  2. p - 每次试验成功的概率(0 到 1 之间)

这些参数决定分布的行为。比如:跟踪获得5位新客户所需的销售电话次数(r = 5),且每次电话成功率为20%(p = 0.2)。r 决定停止点,而 p 影响我们大致要打多久电话。

在 p 不变时增大 r,分布整体右移且更分散,反映要实现更多成功需更多试验。相反,在 r 不变时增大 p,分布左移且更集中,表示成功更可能时通常需要更少试验。

概率质量函数(PMF)与累积分布函数(CDF)

概率质量函数给出在达到 r 次成功前恰好需要 k 次失败的概率。负二项分布的 PMF 为:

其中:

  • X 表示达到 r 次成功前的失败次数
  • (k+r-1 choose k) 为二项系数,表示安排 k 次失败与 r-1 次成功的方式数
  • p 为成功概率
  • r 为期望成功次数
  • K 为失败次数

示例:在质量控制中,若我们需要3个次品(r = 3),且每个产品成为次品的概率为10%(p = 0.1),我们可以计算具体概率。例如,恰好在找到第3个次品之前出现5个正品(k = 5)的概率为:

该结果表明,恰好在找到第3个次品前需要5个正品的概率约为1.24%。

累积分布函数(CDF)基于 PMF,给出在达到目标成功次数前需要不超过 k 次失败的概率:

也就是说,F(k) 给出在找到第3个次品之前,最多需要 k 个正品的概率。例如,F(5) 就是需要不超过 5 个正品的概率。

均值与方差

负二项分布的均值(期望)与方差有着简洁的公式,揭示了均值(μ)与方差(σ²)的重要性质。

这些公式解释了该分布为何擅长建模过度离散数据。注意,方差始终比均值大,且相差比例与 1/p 相关。这个内生特性使其天然适用于方差高于均值的数据集。

例如,在客服场景中,若我们期望解决5个问题(r = 5),且每次尝试成功率为20%(p = 0.2),失败尝试的期望数为:

  • 均值 = 5(1-0.2)/0.2 = 20 次失败
  • 方差 = 5(1-0.2)/0.2² = 100

更高的方差反映了现实:有的案例很快解决,有的需要更多尝试——这在真实世界中很常见。

理解这些特征有助于我们识别何时应用负二项分布,以及如何有效解读结果。这些数学基础为后续的实际应用与实现铺路。

在 Python 与 R 中的实现

让我们验证先前的示例:计算在找到第3个次品前恰好出现5个正品的概率(r=3,p=0.1)。

Python 实现

import scipy.stats as stats
import math

def calculate_nb_pmf(k, r, p):
    # Calculate binomial coefficient (k+r-1 choose k)
    binom_coef = math.comb(k + r - 1, k)
    # Calculate p^r * (1-p)^k
    prob = (p ** r) * ((1 - p) ** k)
    return binom_coef * prob

# Our example parameters
k = 5  # failures (non-defective units)
r = 3  # successes (defective units)
p = 0.1  # probability of success (defective)

# Calculate using our function
prob_manual = calculate_nb_pmf(k, r, p)
print(f"Manual calculation: {prob_manual:.4f}")

# Verify using scipy
prob_scipy = stats.nbinom.pmf(k, r, p)
print(f"SciPy calculation: {prob_scipy:.4f}")

上述代码应输出如下结果:

Manual calculation: 0.0124
SciPy calculation: 0.0124

R 实现

# Calculate probability mass function
k <- 5  # failures (non-defective units)
r <- 3  # successes (defective units)
p <- 0.1  # probability of success (defective)

# Using dnbinom
prob_r <- dnbinom(k, size = r, prob = p)
print(sprintf("R calculation: %.4f", prob_r))

# Manual calculation for verification
manual_calc <- choose(k + r - 1, k) * p^r * (1-p)^k
print(sprintf("Manual calculation: %.4f", manual_calc))

上述代码应与我们的 Python 示例得到相同数值:

R calculation: 0.0124
Manual Calculation: 0.0124

两种实现均验证了此前计算的概率约为 0.0124(1.24%)。

与其他分布的关系

理解负二项分布与其他概率分布的关系,有助于厘清各自的适用场景。负二项分布与统计中若干重要分布存在独特联系。

负二项分布 vs. 二项分布

二项分布是一个基础起点。二项分布在固定试验次数内计数成功次数;负二项分布则反其道而行之,计数为达到固定成功次数所需的试验数。两者互为补充——若您需要恰好3次成功,并想知道在恰好8次试验中达到这一目标的概率,用二项分布;若您想知道需要恰好8次试验才能获得3次成功的概率,用负二项分布。

负二项分布 vs. 泊松分布

在建模计数数据时,泊松分布常与负二项分布被拿来比较。二者都处理离散事件,但在方差假设上不同。泊松分布的关键特征是均值等于方差。然而现实中的计数数据经常出现过度离散,即方差大于均值。负二项分布天然容纳这种额外变异,更适合如下现象:

  • 疾病暴发模式中,部分个案会引发更多二代感染
  • 客户投诉数据中,某些问题会触发多起相关投诉
  • 网站流量激增中,特定事件会导致活动水平明显上升

负二项分布 vs. 几何分布

当 r=1 时,负二项分布退化为几何分布,即只等待一次成功。它适用于如下情景:

  • 直到首次成功所需的尝试次数
  • 可靠性测试中直到首次失效的时间
  • 科研中直到首次突破所需的试验次数

作为 Gamma-Poisson 混合的负二项分布

最后,负二项分布可由 Gamma-Poisson 混合推导而来,这一理论基础解释了其处理过度离散的能力。这也说明了为何负二项分布适用于层级模型,其中个体发生率按 gamma 分布变化。

优势与局限

负二项分布在建模真实世界现象时具有明显优势,同时也有数据科学家需要权衡的局限。

优势局限
在方差大于均值时灵活处理过度离散数据要求试验/事件之间相互独立
参数含义清晰,便于实际应用样本量较小时参数估计不稳定
可兼容计数与比例数据相比简单分布计算量更大
能自然刻画计数数据的聚集性在数据并非真正过度离散时可能过拟合
适用于时间序列与纵向数据假设各次试验成功概率恒定

负二项回归

负二项回归将传统回归扩展到计数数据,尤其适用于存在过度离散的情形。泊松回归假设均值等于方差,而负二项回归放宽了这一约束,更贴近真实应用。

以呼叫中心为例:我们希望预测每小时客服来电数。自变量可能包括:

  • 一天中的时间
  • 星期几
  • 是否假期
  • 营销活动情况
  • 天气状况

标准泊松回归可能低估来电量的波动,尤其在高峰时段或特殊事件期间。负二项回归能考虑这部分额外变异,提供更现实的预测与置信区间。

结论

凭借对复杂计数数据与过度离散的建模能力,负二项分布依然是理解与预测真实世界现象的重要工具。正如本文所示,它擅长刻画过度离散数据,能灵活应对众多场景,并可自然延伸到回归分析。

若您希望深入学习概率分布及其应用,我们的概率与统计课程对相关主题提供了系统讲解。课程包含基于真实数据集的动手练习,帮助您同时掌握理论与在 Python、R 中的实作。此外,欢迎了解我们的Python 机器学习科学家职业路径。我保证,您会收获颇丰。

Vinod Chugani

作者

Vinod Chugani

Vinod Chugani 的职业生涯始于东京,曾任摩根大通最年轻的对冲基金销售台负责人,随后在雷曼兄弟创下个人销售纪录,之后又打造了覆盖 30 个国家的电子分销业务,营收突破 1 亿新元,随后转向数据领域。他毕业于杜克大学经济学专业,亦为 NYC Data Science Academy 校友,并在 100 多名申请者中成为Hugo Bowne-Anderson 在 Maven 开设的 “Building AI Applications” 课程的三位奖学金获得者之一。目前,他为 DataCamp、KDnuggets、Machine Learning Mastery 和 Statology 撰稿,内容涵盖从统计学到代理式 AI 等主题,并在 NYC Data Science Academy 指导数据从业者,已完成超过 1,000 场一对一辅导。

 

负二项分布问答

什么是负二项分布?

负二项分布用于对独立同分布的伯努利试验序列中,为实现指定成功次数所需的试验次数进行建模。

负二项分布与泊松分布有何不同?

负二项分布能处理计数数据的过度离散;相反,泊松分布假设均值与方差相等。

负二项分布有哪些参数?

关键参数为成功次数 r 与每次试验的成功概率 p。

何时应使用负二项分布?

当建模方差大于均值的计数数据(过度离散)时应使用负二项分布。

什么是负二项分布的概率质量函数?

PMF 给出在给定试验次数下实现指定成功次数的概率。

如何用负二项分布计算概率?

使用 PMF 公式或统计软件,根据分布参数计算相应概率。

计数数据中的过度离散是什么?

过度离散指计数数据的方差大于均值,通常可以用负二项分布加以处理。

主题