当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.nhypergeom用法及代码示例


本文简要介绍 python 语言中 scipy.stats.nhypergeom 的用法。

用法:

scipy.stats.nhypergeom = <scipy.stats._discrete_distns.nhypergeom_gen object>#

负超几何离散随机变量。

考虑一个包含\(M\) 球:,\(n\) 红色和\(M-n\) 蓝色。我们从盒子里随机抽取一个球,一次一个,然后没有替换,直到我们选择\(r\) 蓝色球。nhypergeom是红球个数的分布\(k\) 我们选择了。

作为 rv_discrete 类的实例,nhypergeom 对象从它继承了一组通用方法(完整列表见下文),并用特定于此特定发行版的详细信息来完成它们。

注意

用于表示形状参数(M、n 和 r)的符号并未被普遍接受。有关此处使用的定义的说明,请参见示例。

概率质量函数定义为,

对于 ,二项式系数为:

这相当于观察 样本中的 成功,而第 的样本失败。前者可以建模为超几何分布。后者的概率只是剩余的失败次数 除以剩余人口的大小 。这种关系可以表示为:

其中 是负超几何分布的概率质量函数 (PMF), 是超几何分布的 PMF。

上面的概率质量函数以“standardized” 形式定义。要转移分布,请使用 loc 参数。具体来说,nhypergeom.pmf(k, M, n, r, loc) 等同于 nhypergeom.pmf(k - loc, M, n, r)

参考

例子

>>> import numpy as np
>>> from scipy.stats import nhypergeom
>>> import matplotlib.pyplot as plt

假设我们有 20 只动物的集合,其中 7 只是狗。然后,如果我们想知道在恰好有 12 只不是狗的动物(失败)的样本中找到给定数量的狗(成功)的概率,我们可以初始化一个冻结分布并绘制概率质量函数:

>>> M, n, r = [20, 7, 12]
>>> rv = nhypergeom(M, n, r)
>>> x = np.arange(0, n+2)
>>> pmf_dogs = rv.pmf(x)
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.plot(x, pmf_dogs, 'bo')
>>> ax.vlines(x, 0, pmf_dogs, lw=2)
>>> ax.set_xlabel('# of dogs in our group with given 12 failures')
>>> ax.set_ylabel('nhypergeom PMF')
>>> plt.show()
scipy-stats-nhypergeom-1_00_00.png

我们还可以直接使用 nhypergeom 方法,而不是使用冻结的发行版。例如,要获取概率质量函数,请使用:

>>> prb = nhypergeom.pmf(x, M, n, r)

并生成随机数:

>>> R = nhypergeom.rvs(M, n, r, size=10)

要验证 hypergeom nhypergeom 之间的关系,请使用:

>>> from scipy.stats import hypergeom, nhypergeom
>>> M, n, r = 45, 13, 8
>>> k = 6
>>> nhypergeom.pmf(k, M, n, r)
0.06180776620271643
>>> hypergeom.pmf(k, M, n, k+r-1) * (M - n - (r-1)) / (M - (k+r-1))
0.06180776620271644

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.nhypergeom。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。