📅  最后修改于: 2023-12-03 15:26:06.758000             🧑  作者: Mango
超几何分布是一种离散概率分布,描述从有限总体中抽取的样本中具有某些特征的样本数量的概率分布情况。其与二项分布的区别在于,超几何分布是无放回地抽取样本,且总体大小相对样本大小较小,而二项分布是有放回地抽取样本,总体大小相对样本大小较大。
在程序开发中,如果需要模拟从一个有限集合中却取若干个元素,且不放回,超几何分布模型是一种常用的数学模型。
假设总体大小为 $N$,其中有 $K$ 个带有特征的元素,抽取 $n$ 个元素,其中有 $k$ 个带有特征的元素,那么超几何分布的概率质量函数如下所示:
$$ P(X=k)=\frac{{K\choose k} {N-K\choose n-k}}{N\choose n} $$
其中,$\begin{pmatrix} K \ k \end{pmatrix}$ 是组合数,表示从 $K$ 个元素中选择 $k$ 个元素的组合数计数;$\begin{pmatrix} N-K \ n-k \end{pmatrix}$ 同理。
在 python 中,可以使用 scipy
库来实现超几何分布模型的计算。具体地,使用 scipy.stats.hypergeom
类来进行实现。下面给出一个实例代码,可以计算出总体大小为 $N=20$,其中有 $K=8$ 个带有特征的元素,抽取 $n=6$ 个元素,其中有 $k=4$ 个带有特征的元素的概率。
from scipy.stats import hypergeom
N = 20
K = 8
n = 6
k = 4
# 使用 hypergeom 类计算概率
h = hypergeom(N, K, n)
p = h.pmf(k)
print(p)
输出为:
0.17620000000000002
超几何分布模型在程序开发中是一种常用的数学模型,常用于模拟从一个有限集合中抽取若干个元素的情况。通过使用 scipy
库中的 hypergeom
类,我们可以方便地计算出超几何分布的概率分布函数,来帮助我们实现各种有关超几何分布模型的算法。