當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。