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


Python SciPy stats.dirichlet_multinomial用法及代碼示例


本文簡要介紹 python 語言中 scipy.stats.dirichlet_multinomial 的用法。

用法:

scipy.stats.dirichlet_multinomial = <scipy.stats._multivariate.dirichlet_multinomial_gen object>#

狄利克雷多項式隨機變量。

狄利克雷多項分布是一種複合概率分布:它是具有試驗次數的多項分布n和類別概率p從具有濃度參數的狄利克雷分布中隨機采樣alpha.

參數

alpha array_like

濃度參數。沿最後一個軸的條目數決定了分布的維數。每個條目必須嚴格為正數。

n int 或 數組

試驗次數。每個元素必須是嚴格的正整數。

seed {無,int,np.random.RandomState,np.random.Generator},可選

用於繪製隨機變量。如果種子None, 這RandomState使用單例。如果種子是一個 int,一個新的RandomState使用實例,用種子播種。如果種子已經是一個RandomState或者Generator實例,然後使用該對象。默認為None.

參考

[1]

Dirichlet-multinomial分布,維基百科,https://www.wikipedia.org/wiki/Dirichlet-multinomial_distribution

例子

>>> from scipy.stats import dirichlet_multinomial

獲取 PMF

>>> n = 6  # number of trials
>>> alpha = [3, 4, 5]  # concentration parameters
>>> x = [1, 2, 3]  # counts
>>> dirichlet_multinomial.pmf(x, alpha, n)
0.08484162895927604

如果類別計數的總和不等於試驗次數,則概率質量為零。

>>> dirichlet_multinomial.pmf(x, alpha, n=7)
0.0

獲取PMF的日誌

>>> dirichlet_multinomial.logpmf(x, alpha, n)
-2.4669689491013327

獲取平均值

>>> dirichlet_multinomial.mean(alpha, n)
array([1.5, 2. , 2.5])

獲取方差

>>> dirichlet_multinomial.var(alpha, n)
array([1.55769231, 1.84615385, 2.01923077])

獲取協方差

>>> dirichlet_multinomial.cov(alpha, n)
array([[ 1.55769231, -0.69230769, -0.86538462],
       [-0.69230769,  1.84615385, -1.15384615],
       [-0.86538462, -1.15384615,  2.01923077]])

或者,可以調用該對象(作為函數)來修複scipy.stats.alphan參數,返回“frozen” Dirichlet 多項式隨機變量。

>>> dm = dirichlet_multinomial(alpha, n)
>>> dm.pmf(x)
0.08484162895927579

所有方法都是完全矢量化的。的每個元素xscipy.stats.alpha是一個向量(沿著最後一個軸),每個元素n是一個整數(標量),結果按元素計算。

>>> x = [[1, 2, 3], [4, 5, 6]]
>>> alpha = [[1, 2, 3], [4, 5, 6]]
>>> n = [6, 15]
>>> dirichlet_multinomial.pmf(x, alpha, n)
array([0.06493506, 0.02626937])
>>> dirichlet_multinomial.cov(alpha, n).shape  # both covariance matrices
(2, 3, 3)

支持根據標準 NumPy 約定進行廣播。在這裏,我們為三個試驗次數(每個是標量)中的每一個都有四組濃度參數(每個是兩個元素向量)。

>>> alpha = [[3, 4], [4, 5], [5, 6], [6, 7]]
>>> n = [[6], [7], [8]]
>>> dirichlet_multinomial.mean(alpha, n).shape
(3, 4, 2)

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.dirichlet_multinomial。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。