scipy.stats.hypergeom#
- scipy.stats.hypergeom = <scipy.stats._discrete_distns.hypergeom_gen object>[原始碼]#
一個超幾何離散隨機變數。
超幾何分布模型模擬從一個箱子中抽取物件。M 是物件總數,n 是 Type I 物件的總數。隨機變量表示從總體中不放回地抽取 N 個物件時,Type I 物件的數量。
作為
rv_discrete
類別的一個實例,hypergeom
物件繼承了它的一系列通用方法(完整列表見下文),並用針對此特定分布的細節來完善它們。另請參閱
筆記
用於表示形狀參數(M、n 和 N)的符號並非普遍接受。請參閱範例以澄清此處使用的定義。
機率質量函數定義為:
\[p(k, M, n, N) = \frac{\binom{n}{k} \binom{M - n}{N - k}} {\binom{M}{N}}\]對於 \(k \in [\max(0, N - M + n), \min(n, N)]\),其中二項式係數定義為:
\[\binom{n}{k} \equiv \frac{n!}{k! (n - k)!}.\]此分布使用 Boost Math C++ 函式庫中的常式來計算
pmf
、cdf
、sf
和stats
方法。[1]上面的機率質量函數以「標準化」形式定義。若要移動分布,請使用
loc
參數。具體來說,hypergeom.pmf(k, M, n, N, loc)
與hypergeom.pmf(k - loc, M, n, N)
完全等效。參考文獻
[1]Boost 開發者。「Boost C++ 函式庫」。https://boost.dev.org.tw/。
範例
>>> import numpy as np >>> from scipy.stats import hypergeom >>> import matplotlib.pyplot as plt
假設我們有 20 隻動物的集合,其中 7 隻是狗。那麼,如果我們想知道從 20 隻動物中隨機選擇 12 隻時,找到給定數量的狗的機率,我們可以初始化一個凍結分布並繪製機率質量函數
>>> [M, n, N] = [20, 7, 12] >>> rv = hypergeom(M, n, N) >>> x = np.arange(0, n+1) >>> 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 of chosen animals') >>> ax.set_ylabel('hypergeom PMF') >>> plt.show()
除了使用凍結分布,我們也可以直接使用
hypergeom
方法。例如,若要取得累積分布函數,請使用>>> prb = hypergeom.cdf(x, M, n, N)
而要產生隨機數字
>>> R = hypergeom.rvs(M, n, N, size=10)
方法
rvs(M, n, N, loc=0, size=1, random_state=None)
隨機變量。
pmf(k, M, n, N, loc=0)
機率質量函數。
logpmf(k, M, n, N, loc=0)
機率質量函數的對數。
cdf(k, M, n, N, loc=0)
累積分布函數。
logcdf(k, M, n, N, loc=0)
累積分布函數的對數。
sf(k, M, n, N, loc=0)
生存函數(也定義為
1 - cdf
,但 sf 有時更準確)。logsf(k, M, n, N, loc=0)
生存函數的對數。
ppf(q, M, n, N, loc=0)
百分點函數(
cdf
的反函數 — 百分位數)。isf(q, M, n, N, loc=0)
反生存函數(
sf
的反函數)。stats(M, n, N, loc=0, moments=’mv’)
平均數('m')、變異數('v')、偏度('s')和/或峰度('k')。
entropy(M, n, N, loc=0)
RV 的(微分)熵。
expect(func, args=(M, n, N), loc=0, lb=None, ub=None, conditional=False)
函數(一個引數)對於分布的期望值。
median(M, n, N, loc=0)
分布的中位數。
mean(M, n, N, loc=0)
分布的平均數。
var(M, n, N, loc=0)
分布的變異數。
std(M, n, N, loc=0)
分布的標準差。
interval(confidence, M, n, N, loc=0)
具有圍繞中位數的相等區域的信賴區間。