numpy.random.RandomState.negative_binomial#

方法

random.RandomState.negative_binomial(n, p, size=None)#

從負二項分佈中抽取樣本。

樣本是從具有指定參數的負二項分佈中抽取的,n 次成功和 p 成功機率,其中 n > 0 且 p 在區間 [0, 1] 內。

注意

新程式碼應使用 negative_binomial 方法,此方法屬於 Generator 實例;請參閱快速入門

參數:
nfloat 或 float 的類陣列 (array_like)

分佈的參數,> 0。

pfloat 或 float 的類陣列 (array_like)

分佈的參數,>= 0 且 <= 1。

sizeint 或 int 的元組,選用

輸出形狀。如果給定的形狀是,例如,(m, n, k),則會抽取 m * n * k 個樣本。如果 size 是 None (預設值),則如果 np 都是純量,則會傳回單一值。否則,會抽取 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\) 是 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 Resource。https://mathworld.wolfram.com/NegativeBinomialDistribution.html

[2]

Wikipedia, “負二項分佈”, 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)