scipy.stats.wishart

scipy.stats.wishart = <scipy.stats._multivariate.wishart_gen object>[源代码]

一个Wishart随机变量。

这个 df 关键字指定自由度。这个 scale 关键字指定比例矩阵,它必须是对称且正定的。在这种情况下,尺度矩阵通常被解释为多变量正态精度矩阵(协方差矩阵的逆)。这些参数必须满足关系 df > scale.ndim - 1 ,但请参见有关使用 rvs 方法: df < scale.ndim

参数
xarray_like

分位数,最后一个轴为 x 表示组件。

df集成

自由度,必须大于或等于比例矩阵的维数

scalearray_like

分布的对称正定尺度矩阵

random_state :{无,整型, numpy.random.Generator{无,整型,

如果 seed 为无(或 np.random )、 numpy.random.RandomState 使用的是Singleton。如果 seed 是一个整型、一个新的 RandomState 实例,其种子设定为 seed 。如果 seed 已经是一个 GeneratorRandomState 实例,则使用该实例。

或者,可以调用对象(作为函数)来固定度数
自由度和比例参数,返回一个“冻结的”Wishart随机数
变量:
rv = wishart(df=1, scale=1)
  • 使用相同的方法冻结对象,但保持给定的自由度和比例固定。

参见

invwishart, chi2

注意事项

比例矩阵 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)。

如果比例矩阵是一维的且等于一,则Wishart分布 \(W_1(\nu, 1)\) 折叠到 \(\chi^2(\nu)\) 分配。

该算法 [2]rvs 方法可以生成具有以下参数的数值奇异矩阵 \(p - 1 < \nu < p\) ;用户可能希望检查此条件,并根据需要生成替换样本。

0.16.0 新版功能.

参考文献

1

M.L.Eaton,“多元统计:向量空间方法”,Wiley,1983。

2

W.B.Smith和R.R.Hocking,“Algorithm AS 53:Wishart Variable Generator”,应用统计学,第一卷。21,第341-345页,1972年。

示例

>>> 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)

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

../../_images/scipy-stats-wishart-1.png

方法:

``pdf(x, df, scale)``

概率密度函数。

``logpdf(x, df, scale)``

概率密度函数的对数。

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

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

``entropy()``

计算Wishart分布的微分熵。