scipy.stats.wishart#

scipy.stats.wishart = <scipy.stats._multivariate.wishart_gen object>[source]#

一个威沙特随机变量。

df 关键字指定自由度。scale 关键字指定尺度矩阵,它必须是对称正定的。在此上下文中,尺度矩阵通常根据多元正态精度矩阵(协方差矩阵的逆)进行解释。这些参数必须满足关系 df > scale.ndim - 1,但请参阅使用 rvs 方法时关于 df < scale.ndim的说明。

参数:
dfint

自由度,必须大于或等于尺度矩阵的维度

scalearray_like

分布的对称正定标度矩阵

seed{None, int, np.random.RandomState, np.random.Generator}, optional

用于绘制随机变量。如果seedNone,则使用RandomState单例。如果seed是int,则使用新的RandomState实例,并以seed播种。如果seed已是RandomStateGenerator实例,则使用该对象。默认值为None

引发:
scipy.linalg.LinAlgError

如果尺度矩阵scale不是正定的。

另请参见

invwishartchi2

注意

尺度矩阵scale必须是对称正定矩阵。不支持奇异矩阵,包括对称正半定情况。不检查对称性;仅使用下三角部分。

Wishart分布通常表示为

\[W_p(\nu, \Sigma)\]

其中\(\nu\)是自由度,\(\Sigma\)\(p \times p\)尺度矩阵。

针对wishart的概率密度函数对正定矩阵\(S\)提供支持;如果\(S \sim W_p(\nu, \Sigma)\),则其PDF由以下公式给出

\[f(S) = \frac{|S|^{\frac{\nu - p - 1}{2}}}{2^{ \frac{\nu p}{2} } |\Sigma|^\frac{\nu}{2} \Gamma_p \left ( \frac{\nu}{2} \right )} \exp\left( -tr(\Sigma^{-1} S) / 2 \right)\]

如果\(S \sim W_p(\nu, \Sigma)\)(Wishart),则\(S^{-1} \sim W_p^{-1}(\nu, \Sigma^{-1})\)(逆Wishart)。

如果尺度矩阵是一维且等于1,则Wishart分布\(W_1(\nu, 1)\)将折叠为\(\chi^2(\nu)\)分布。

rvs方法实现的算法[2]可能会生成数字奇异矩阵,其中\(p - 1 < \nu < p\);用户可能希望检查此条件并在必要时生成替代样本。

在版本0.16.0中添加。

参考

[1]

M.L. Eaton,“多元统计:矢量空间方法”,威利,1983年。

[2]

W.B. Smith和R.R. Hocking,“算法AS 53:Wishart变量发生器”,应用统计,第21卷,第341-345页,1972年。

示例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.stats import wishart, chi2
>>> x = np.linspace(1e-5, 8, 100)
>>> w = wishart.pdf(x, df=3, scale=1); w[:5]
array([ 0.00126156,  0.10892176,  0.14793434,  0.17400548,  0.1929669 ])
>>> c = chi2.pdf(x, 3); c[:5]
array([ 0.00126156,  0.10892176,  0.14793434,  0.17400548,  0.1929669 ])
>>> plt.plot(x, w)
>>> plt.show()
../../_images/scipy-stats-wishart-1_00_00.png

输入分位数可以是数组的任何形状,只要最后的轴标记组件即可。

或者,可以调用对象(作为函数)来修复自由度和比例参数,返回“冻结的”Wishart 随机变量

>>> rv = wishart(df=1, scale=1)
>>> # Frozen object with the same methods but holding the given
>>> # degrees of freedom and scale fixed.

方法

pdf(x, df, scale)

概率密度函数。

logpdf(x, df, scale)

概率密度函数的对数。

rvs(df, scale, size=1, random_state=None)

从 Wishart 分布中抽取随机样本。

entropy()

计算 Wishart 分布的微分熵。