scipy.stats.multivariate_t#
- scipy.stats.multivariate_t = <scipy.stats._multivariate.multivariate_t_gen object>[源代码]#
多元 t 分布随机变量。
loc 参数指定位置。 shape 参数指定正半定形状矩阵。 df 参数指定自由度。
除了调用以下方法外,对象本身也可以作为函数调用,以固定位置、形状矩阵和自由度参数,从而返回“冻结”的多元 t 分布随机变量。
- 参数:
- loc类数组,可选
分布的位置。(默认值
0
)- shape类数组,可选
分布的正半定矩阵。(默认值
1
)- df浮点数,可选
分布的自由度;必须大于零。如果
np.inf
,则结果是多元正态分布。默认值为1
。- allow_singular布尔值,可选
是否允许奇异矩阵。(默认值
False
)- seed{None, int, np.random.RandomState, np.random.Generator},可选
用于绘制随机变量。如果 seed 为 None,则使用 RandomState 单例。如果 seed 是一个整数,则使用一个新的
RandomState
实例,并使用 seed 作为种子。如果 seed 已经是RandomState
或Generator
实例,则使用该对象。默认值为 None。
说明
将参数 loc 设置为
None
等同于将 loc 设置为零向量。参数 shape 可以是标量,在这种情况下,形状矩阵是单位矩阵乘以该值,也可以是形状矩阵的对角线项向量,或者是一个二维类数组。矩阵 shape 必须是一个(对称)正半定矩阵。shape 的行列式和逆矩阵分别计算为伪行列式和伪逆矩阵,因此 shape 不需要具有满秩。multivariate_t
的概率密度函数为\[f(x) = \frac{\Gamma((\nu + p)/2)}{\Gamma(\nu/2)\nu^{p/2}\pi^{p/2}|\Sigma|^{1/2}} \left[1 + \frac{1}{\nu} (\mathbf{x} - \boldsymbol{\mu})^{\top} \boldsymbol{\Sigma}^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right]^{-(\nu + p)/2},\]其中 \(p\) 是 \(\mathbf{x}\) 的维数,\(\boldsymbol{\mu}\) 是 \(p\) 维位置,\(\boldsymbol{\Sigma}\) 是 \(p \times p\) 维形状矩阵,\(\nu\) 是自由度。
在 1.6.0 版本中添加。
参考
[1]Arellano-Valle 等人。“多元偏斜椭圆分布的香农熵和互信息”。《斯堪的纳维亚统计学杂志》。第 40 卷,第 1 期。
示例
可以调用该对象(作为函数)来固定 loc、shape、df 和 allow_singular 参数,从而返回一个“冻结”的 multivariate_t 随机变量
>>> import numpy as np >>> from scipy.stats import multivariate_t >>> rv = multivariate_t([1.0, -0.5], [[2.1, 0.3], [0.3, 1.5]], df=2) >>> # Frozen object with the same methods but holding the given location, >>> # scale, and degrees of freedom fixed.
创建 PDF 的等高线图。
>>> import matplotlib.pyplot as plt >>> x, y = np.mgrid[-1:3:.01, -2:1.5:.01] >>> pos = np.dstack((x, y)) >>> fig, ax = plt.subplots(1, 1) >>> ax.set_aspect('equal') >>> plt.contourf(x, y, rv.pdf(pos))
方法
pdf(x, loc=None, shape=1, df=1, allow_singular=False)
概率密度函数。
logpdf(x, loc=None, shape=1, df=1, allow_singular=False)
概率密度函数的对数。
cdf(x, loc=None, shape=1, df=1, allow_singular=False, *,
maxpts=None, lower_limit=None, random_state=None) 累积分布函数。
rvs(loc=None, shape=1, df=1, size=1, random_state=None)
从多元 t 分布中抽取随机样本。
entropy(loc=None, shape=1, df=1)
多元 t 分布的微分熵。