本文简要介绍 python 语言中 scipy.stats.nhypergeom
的用法。
用法:
scipy.stats.nhypergeom = <scipy.stats._discrete_distns.nhypergeom_gen object>#
负超几何离散随机变量。
考虑一个包含
球:, 红色和 蓝色。我们从盒子里随机抽取一个球,一次一个,然后没有替换,直到我们选择 蓝色球。nhypergeom
是红球个数的分布 我们选择了。作为
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()
我们还可以直接使用
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
相关用法
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.normaltest用法及代码示例
- Python SciPy stats.nbinom用法及代码示例
- Python SciPy stats.nchypergeom_wallenius用法及代码示例
- Python SciPy stats.nakagami用法及代码示例
- Python SciPy stats.nct用法及代码示例
- Python SciPy stats.ncf用法及代码示例
- Python SciPy stats.ncx2用法及代码示例
- Python SciPy stats.nchypergeom_fisher用法及代码示例
- Python SciPy stats.norm用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.directional_stats用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
- Python SciPy stats.bartlett用法及代码示例
- Python SciPy stats.levy_stable用法及代码示例
- Python SciPy stats.page_trend_test用法及代码示例
- Python SciPy stats.itemfreq用法及代码示例
- Python SciPy stats.exponpow用法及代码示例
- Python SciPy stats.gumbel_l用法及代码示例
- Python SciPy stats.chisquare用法及代码示例
- Python SciPy stats.semicircular用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.nhypergeom。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。