scipy.stats.multinomial#
- scipy.stats.multinomial = <scipy.stats._multivariate.multinomial_gen object>[source]#
一個多項式隨機變數。
- 參數:
- nint
試驗次數
- parray_like
每次試驗落入每個類別的機率;總和應為 1
- seed{None, int, np.random.RandomState, np.random.Generator}, optional
用於繪製隨機變量。如果 seed 為 None,則使用 RandomState 單例。如果 seed 是 int,則使用新的
RandomState
實例,並以 seed 作為種子。如果 seed 已經是RandomState
或Generator
實例,則使用該物件。預設為 None。
另請參閱
scipy.stats.binom
二項式分佈。
numpy.random.Generator.multinomial
從多項式分佈中抽樣。
scipy.stats.multivariate_hypergeom
多變量超幾何分佈。
註解
n 應為非負整數。p 的每個元素應在區間 \([0,1]\) 內,且元素總和應為 1。如果它們的總和不為 1,則不使用 p 陣列的最後一個元素,並將其替換為從先前元素剩餘的機率。
multinomial
的機率質量函數為\[f(x) = \frac{n!}{x_1! \cdots x_k!} p_1^{x_1} \cdots p_k^{x_k},\]支援於 \(x=(x_1, \ldots, x_k)\),其中每個 \(x_i\) 都是非負整數,且它們的總和為 \(n\)。
在 0.19.0 版本中新增。
範例
>>> from scipy.stats import multinomial >>> rv = multinomial(8, [0.3, 0.2, 0.5]) >>> rv.pmf([1, 3, 4]) 0.042000000000000072
對於 \(k=2\) 的多項式分佈與對應的二項式分佈相同(除了微小的數值差異外)
>>> from scipy.stats import binom >>> multinomial.pmf([3, 4], n=7, p=[0.4, 0.6]) 0.29030399999999973 >>> binom.pmf(3, 7, 0.4) 0.29030400000000012
函數
pmf
、logpmf
、entropy
和cov
支援廣播,依照慣例,向量參數(x
和p
)被解釋為沿著最後一個軸的每一列都是單一物件。例如>>> multinomial.pmf([[3, 4], [3, 5]], n=[7, 8], p=[.3, .7]) array([0.2268945, 0.25412184])
在此,
x.shape == (2, 2)
、n.shape == (2,)
和p.shape == (2,)
,但依照上述規則,它們的行為就像x
中的列[3, 4]
和[3, 5]
以及p
中的[.3, .7]
是單一物件,並且就像我們有x.shape = (2,)
、n.shape = (2,)
和p.shape = ()
一樣。若要取得不進行廣播的個別元素,我們會這樣做>>> multinomial.pmf([3, 4], n=7, p=[.3, .7]) 0.2268945 >>> multinomial.pmf([3, 5], 8, p=[.3, .7]) 0.25412184
此廣播也適用於
cov
,其中輸出物件是大小為p.shape[-1]
的方陣。例如>>> multinomial.cov([4, 5], [[.3, .7], [.4, .6]]) array([[[ 0.84, -0.84], [-0.84, 0.84]], [[ 1.2 , -1.2 ], [-1.2 , 1.2 ]]])
在此範例中,
n.shape == (2,)
和p.shape == (2, 2)
,並且依照上述規則,這些廣播的行為就像p.shape == (2,)
一樣。因此,結果的形狀也應為(2,)
,但由於每個輸出都是 \(2 \times 2\) 矩陣,因此結果實際上具有形狀(2, 2, 2)
,其中result[0]
等於multinomial.cov(n=4, p=[.3, .7])
,而result[1]
等於multinomial.cov(n=5, p=[.4, .6])
。或者,可以呼叫物件(作為函數)來固定 n 和 p 參數,傳回「凍結的」多項式隨機變數
>>> rv = multinomial(n=7, p=[.3, .7]) >>> # Frozen object with the same methods but holding the given >>> # degrees of freedom and scale fixed.
方法
pmf(x, n, p)
機率質量函數。
logpmf(x, n, p)
機率質量函數的對數。
rvs(n, p, size=1, random_state=None)
從多項式分佈中抽取隨機樣本。
entropy(n, p)
計算多項式分佈的熵。
cov(n, p)
計算多項式分佈的共變異數矩陣。