scipy.stats.invwishart#

scipy.stats.invwishart = <scipy.stats._multivariate.invwishart_gen object>[source]#

逆 Wishart 随机变量。

df 关键字指定自由度。 scale 关键字指定尺度矩阵,该矩阵必须是对称的正定矩阵。 在这种情况下,尺度矩阵通常用多元正态协方差矩阵来解释。

参数::
dfint

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

scalearray_like

分布的对称正定尺度矩阵

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

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

引发::
scipy.linalg.LinAlgError

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

另请参见

wishart

注意

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

逆 Wishart 分布通常表示为

\[W_p^{-1}(\nu, \Psi)\]

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

invwishart 的概率密度函数在正定矩阵 \(S\) 上有支持;如果 \(S \sim W^{-1}_p(\nu, \Sigma)\),则其 PDF 由下式给出

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

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

如果尺度矩阵是一维的且等于 1,则逆 Wishart 分布 \(W_1(\nu, 1)\) 会简化为形状为 \(\frac{\nu}{2}\)、尺度为 \(\frac{1}{2}\) 的逆 Gamma 分布。

这里没有像 [2] 中描述的那样对随机生成的 Wishart 矩阵进行求逆,而是使用 [4] 中的算法来直接生成随机逆 Wishart 矩阵,而无需求逆。

在版本 0.16.0 中添加。

参考文献

[1]

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

[2]

M.C. Jones,“生成逆 Wishart 矩阵”,《通信统计——模拟与计算》,第 14 卷,第 2 期,第 511-514 页,1985 年。

[3]

Gupta, M. 和 Srivastava, S. “微分熵和相对熵的参数贝叶斯估计”。熵 12, 818 - 843. 2010 年。

[4]

S.D. Axen,“高效生成逆 Wishart 矩阵及其 Cholesky 因子”,arXiv:2310.15884v1。 2023 年。

示例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.stats import invwishart, invgamma
>>> x = np.linspace(0.01, 1, 100)
>>> iw = invwishart.pdf(x, df=6, scale=1)
>>> iw[:3]
array([  1.20546865e-15,   5.42497807e-06,   4.45813929e-03])
>>> ig = invgamma.pdf(x, 6/2., scale=1./2)
>>> ig[:3]
array([  1.20546865e-15,   5.42497807e-06,   4.45813929e-03])
>>> plt.plot(x, iw)
>>> plt.show()
../../_images/scipy-stats-invwishart-1_00_00.png

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

或者,可以调用该对象(作为函数)以固定自由度和尺度参数,返回一个“冻结的”逆 Wishart 随机变量

>>> rv = invwishart(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(df, scale)

分布的微分熵。