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


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


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

用法:

scipy.stats.matrix_normal = <scipy.stats._multivariate.matrix_normal_gen object>#

矩陣正態隨機變量。

mean 關鍵字指定均值。 rowcov 關鍵字指定among-row 協方差矩陣。 ‘colcov’ 關鍵字指定among-column 協方差矩陣。

參數

mean 數組,可選

分布的平均值(默認值:無)

rowcov 數組,可選

Among-row 分布的協方差矩陣(默認值:1)

colcov 數組,可選

Among-column 分布的協方差矩陣(默認值:1)

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

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

注意

如果均值設置為無,則使用零矩陣作為均值。如果提供了這些,則從 rowcov 和 colcov 的形狀推斷該矩陣的維度,如果不明確,則設置為 1。

rowcov 和 colcov 可以是二維的array_likes,直接指定協方差矩陣。或者,一維數組將被解釋為對角矩陣的條目,而標量或零維數組將被解釋為該值乘以單位矩陣。

由指定的協方差矩陣行科夫科爾科夫必須是(對稱的)正定的。如果樣本在X\(m \times n\) , 然後行科夫一定是\(m \times m\) 科爾科夫一定是\(n \times n\) .意思是必須是相同的形狀X.

matrix_normal 的概率密度函數為

其中 是均值, 是among-row協方差矩陣, 是among-column協方差矩陣。

allow_singular的行為scipy.stats.multivariate_normal目前不支持分發。協方差矩陣必須是滿秩的。

matrix_normal 分布與 multivariate_normal 分布密切相關。具體來說, (通過連接 的列形成的向量)具有均值 和協方差 (其中 是克羅內克乘積)的多元正態分布。對於矩陣法線,采樣和 pdf 評估是 ,但對於等效多元法線,采樣和 pdf 評估是 ,使得這種等效形式在算法上效率低下。

例子

>>> import numpy as np
>>> from scipy.stats import matrix_normal
>>> M = np.arange(6).reshape(3,2); M
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> U = np.diag([1,2,3]); U
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3]])
>>> V = 0.3*np.identity(2); V
array([[ 0.3,  0. ],
       [ 0. ,  0.3]])
>>> X = M + 0.1; X
array([[ 0.1,  1.1],
       [ 2.1,  3.1],
       [ 4.1,  5.1]])
>>> matrix_normal.pdf(X, mean=M, rowcov=U, colcov=V)
0.023410202050005054
>>> # Equivalent multivariate normal
>>> from scipy.stats import multivariate_normal
>>> vectorised_X = X.T.flatten()
>>> equiv_mean = M.T.flatten()
>>> equiv_cov = np.kron(V,U)
>>> multivariate_normal.pdf(vectorised_X, mean=equiv_mean, cov=equiv_cov)
0.023410202050005054

或者,可以調用對象(作為函數)來固定均值和協方差參數,返回 “frozen” 矩陣正態隨機變量:

>>> rv = matrix_normal(mean=None, rowcov=1, colcov=1)
>>> # Frozen object with the same methods but holding the given
>>> # mean and covariance fixed.

相關用法


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