Math-00.数学分布-16.超几何分布

超几何分布(Hypergeometric distribution)描述无放回抽样中「$n$ 次抽取里成功个数」的分布。总体有限、每次抽取改变剩余构成,是 二项分布(有放回/无限总体)的有限总体修正。

段末注释无放回抽样(sampling without replacement)指每次抽取后不再放回总体,后续概率依赖已抽结果。

读前说明:离散分布,下文给出 PMF。系列:00 规划 | 对比:11.二项


1. 产生背景与直观

图 1 超几何分布直观

罐中有 $N$ 球,其中 $K$ 个红球(成功)、$N-K$ 个白球。不放回抽 $n$ 个,问抽到 $x$ 个红球的概率。每抽一次,红球比例变化——与二项「每次 $p$ 不变」不同。


2. 定义与参数

$X \sim \mathrm{Hypergeometric}(N, K, n)$:

要素 内容
支撑集 ${\max(0,n+K-N),\ldots,\min(n,K)}$
$N$ 总体大小(有限)
$K$ 总体中「成功」个数
$n$ 抽样次数

3. PMF 与 CDF

图 2 PMF 与二项对比

3.1 PMF

$$
P(X=x) = \frac{\binom{K}{x}\binom{N-K}{n-x}}{\binom{N}{n}}, \quad x \in {\max(0,n+K-N),\ldots,\min(n,K)}
$$

3.2 CDF

$$
F(x) = \sum_{i=0}^{x} P(X=i)
$$

分位数:可用 scipy.stats.hypergeom.ppf


4. 数字特征

记 $p = K/N$:

公式
$\mathbb{E}[X]$ $n \cdot \dfrac{K}{N} = np$
$\mathrm{Var}(X)$ $n p (1-p) \dfrac{N-n}{N-1}$
有限总体校正 因子 $\dfrac{N-n}{N-1}$($n=1$ 时为 1)

方差小于同参数二项(因无放回负相关)。


5. 与其他分布的关系

关系 条件
Binomial 近似 $N \gg n$:$\mathrm{Hypergeom}(N,K,n) \approx \mathrm{Binomial}(n, K/N)$
二项 vs 超几何 有放回 → 二项;无放回 → 超几何
Fisher 精确检验 $2\times2$ 列联表在固定边际下服从超几何
负超几何 抽直到 $r$ 个成功(与 14.负二项 类比)

6. 前提假设

假设 含义 违背时
有限总体 $N$ 总体大小已知且有限 $N\gg n$ → 二项
$K$ 已知 总体中「成功」个数已知 $K$ 不确定 → 估计或贝叶斯
无放回抽样 每次抽取不放回,构成改变 有放回 → 二项
简单随机样本 从剩余总体中等概率抽取 分层/聚类 → 复杂抽样设计

段末注释:样本内各次抽取负相关(总和固定);方差含有限总体校正 $(N-n)/(N-1)$。


7. 适用场景

图 3 适用场景

场景 示例
质检抽样 $N$ 件中 $K$ 不合格,抽 $n$ 件检不合格数
生态捕获 标记 $K$ 只,再捕 $n$ 只中标记数
扑克/抽奖 有限牌堆中特定牌张数
Fisher 精确 小样本 $2\times2$ 表独立性
文库亚克隆 有限克隆库中目标序列被抽中次数

8. 局限与误用

图 4 局限

问题 说明
$N$ 很大仍用精确超几何 计算贵;$N \gg n$ 可用二项
有放回却用超几何 应使用 二项
$n/N$ 大 与二项差异显著,不可忽略 FPC
总体不确定 $N$ 需估计或贝叶斯
多阶段复杂抽样 分层/聚类需更复杂设计

9. 参数估计与推断

9.1 推断

总体比例 $p=K/N$ 的估计常基于观测 $x/n$;有限总体校正进入方差。

9.2 Fisher 精确检验

$2\times2$ 表在固定行和列边际下,任一单元格计数服从超几何;用于小样本独立性检验,与 26.卡方 大样本 $\chi^2$ 对照。


10. 示例与代码

场景:1000 件产品 50 件不合格,抽 20 件检验,求 $P(X \ge 2)$ 及与二项近似对比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

N, K, n = 1000, 50, 20
p = K / N

x = np.arange(0, min(n, K) + 1)
hyper_pmf = stats.hypergeom.pmf(x, N, K, n)
binom_pmf = stats.binom.pmf(x, n, p)

print("P(X>=2) hypergeom:", 1 - stats.hypergeom.cdf(1, N, K, n))
print("P(X>=2) binom approx:", 1 - stats.binom.cdf(1, n, p))

fig, ax = plt.subplots(figsize=(8, 4))
ax.bar(x - 0.15, hyper_pmf, width=0.3, label='Hypergeom', alpha=0.85)
ax.bar(x + 0.15, binom_pmf, width=0.3, label='Binomial approx', alpha=0.85)
ax.set_xlabel('x (defects in sample)'); ax.legend()
plt.savefig('hypergeom_vs_binom.png', dpi=150)

# Fisher exact: 2x2 table
table = [[8, 2], [12, 18]] # example
odds, p_fisher = stats.fisher_exact(table)
print(f"Fisher exact p-value: {p_fisher:.4f}")

11. 小结

  • Hypergeom($N,K,n$):无放回抽样的成功数;$\mathbb{E}=nK/N$,方差含 FPC $(N-n)/(N-1)$。
  • $N \gg n$ 时近似 Binomial;小样本列联表用 Fisher 精确
  • 与二项的核心区别:有限总体 + 无放回

系列导航11.二项 | 40.极限


参考文献

  1. scipy.stats.hypergeom
-------------本文结束感谢您的阅读-------------