numpy.random.negative_binomial#
- random.negative_binomial(n, p, size=None)#
從負二項分佈中抽取樣本。
樣本是從具有指定參數的負二項分佈中抽取的,其中 n 為成功次數,p 為成功機率,其中 n > 0 且 p 在區間 [0, 1] 內。
注意
新程式碼應使用
negative_binomial
方法,此方法屬於Generator
實例;請參閱快速入門。- 參數:
- n浮點數或浮點數的類陣列 (array_like)
分佈的參數,> 0。
- p浮點數或浮點數的類陣列 (array_like)
分佈的參數,>= 0 且 <=1。
- size整數或整數元組,選用
輸出形狀。如果給定的形狀為,例如
(m, n, k)
,則會抽取m * n * k
個樣本。如果 size 為None
(預設值),如果n
和p
都是純量,則會傳回單一值。否則,會抽取np.broadcast(n, p).size
個樣本。
- 返回:
- outndarray 或 純量
從參數化的負二項分佈中抽取的樣本,其中每個樣本等於 N,即在達到總共 n 次成功之前發生的失敗次數。
警告
此函數返回 C-long dtype,在 Windows 上為 32 位元,在 64 位元平台上則為 64 位元 (在 32 位元平台上則為 32 位元)。自 NumPy 2.0 起,NumPy 的預設整數在 32 位元平台上為 32 位元,在 64 位元平台上為 64 位元。
另請參閱
random.Generator.negative_binomial
新程式碼應使用此方法。
註解
負二項分佈的機率質量函數為
\[P(N;n,p) = \frac{\Gamma(N+n)}{N!\Gamma(n)}p^{n}(1-p)^{N},\]其中 \(n\) 是成功次數,\(p\) 是成功機率,\(N+n\) 是試驗次數,而 \(\Gamma\) 是伽瑪函數。當 \(n\) 是整數時,\(\frac{\Gamma(N+n)}{N!\Gamma(n)} = \binom{N+n-1}{N}\),這是 pmf 中此項更常見的形式。負二項分佈給出了在最後一次試驗成功的情況下,給定 n 次成功時出現 N 次失敗的機率。
如果一個人重複擲骰子,直到第三次出現「1」,則在第三次「1」出現之前出現的非「1」次數的機率分佈是負二項分佈。
參考文獻
[1]Weisstein, Eric W. “負二項分佈。” 來自 MathWorld–Wolfram Web 資源。 https://mathworld.wolfram.com/NegativeBinomialDistribution.html
[2]維基百科,“負二項分佈”, https://en.wikipedia.org/wiki/Negative_binomial_distribution
範例
從分佈中抽取樣本
真實世界範例。一家公司鑽探野貓式石油探勘井,每口井的估計成功機率為 0.1。對於每口連續的井,獲得一次成功的機率是多少,也就是說,在鑽探 5 口井後、6 口井後等等,獲得單次成功的機率是多少?
>>> s = np.random.negative_binomial(1, 0.1, 100000) >>> for i in range(1, 11): ... probability = sum(s<i) / 100000. ... print(i, "wells drilled, probability of one success =", probability)