当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。