2026a

# 多元 t 分布

# 定义

d 维多元 t 分布的概率密度函数由下式给出:

其中 x 是 1×d 向量, 是 d×d 对称正定矩阵, 是正标量。 虽然可以为奇异 定义多元 t 分布,但密度不能如上所示。 对于奇异情况,仅支持随机数生成。

# 背景

多元 t 分布是单变量 t 到两个或更多变量的推广。 它是相关变量的随机向量的分布,其中每个元素都具有单变量 t 分布。 与单变量 t 分布可以通过将标准单变量正态随机变量除以单变量卡方随机变量的平方根来构建类似,多元 t 分布可以通过将具有零均值和单位方差的多元正态随机向量除以单变量卡方随机变量来构建。

多元学生 t 分布使用相关矩阵 和正标量自由度参数 进行参数化。 类似于单变量 t 分布的自由度参数。 的非对角线元素包含变量之间的相关性。 请注意,当 Σ 是单位矩阵时,变量是不相关的; 但是,它们不是独立的。

在已知各个变量的边际分布比正态分布具有更厚尾的情况下,多元 t 分布通常用作多元正态分布的替代。

# 示例

绘制多元 t 分布 pdf 和 cdf

绘制双变量 t 分布的 pdf。 您也可以将此分布用于更多维度,尽管可视化并不容易。

using TyPlot
using TyBase
using TyStatistics
Rho = [1 0.6; 0.6 1]
nu = 5
x1 = -3:0.2:3
x2 = -3:0.2:3
X1,X2 = meshgrid2(x1,x2)
F = mvtpdf([X1[:] X2[:]],Rho,nu)
F = reshape(F,length(x2),length(x1))
figure()
surf(x1,x2,F)
caxis([minimum(F[:])-0.5*range(F[:]),maximum(F[:])])
axis([-3 3 -3 3 0 0.2])
xlabel("x1")
ylabel("x2")
zlabel("Probability Density")

绘制双变量 t 分布的 cdf。

F = mvtcdf([X1[:] X2[:]],Rho,nu)[1]
F = reshape(F,length(x2),length(x1))
figure()
surf(x1,x2,F)
caxis([minimum(F[:])-0.5*range(F[:]),maximum(F[:])])
axis([-3 3 -3 3 0 1])
xlabel("x1")
ylabel("x2")
zlabel("Cumulative Probability")

由于二元 t 分布是在平面上定义的,因此您还可以计算矩形区域的累积概率。 例如,此等高线图说明了图中所示单位正方形中包含的概率的后续计算。

contour(x1,x2,F,[0.0001, 0.001, 0.01, 0.05:0.1:0.95..., 0.99, 0.999, 0.9999])
hold("on")
xlabel("x")
ylabel("y")
line([0 0 1 1 0],[1 0 0 1 1],linestyle="--",color="k")
hold("off")

计算单位正方形内包含的概率值。

F = mvtcdf([0 0],[1 1],Rho,nu)[1]
F = 1×1 Matrix{Float64}:
 0.14012965715539616

计算多元累积概率比计算单变量概率需要更多的工作。 默认情况下,mvtcdf 函数计算的值小于完整的机器精度,并返回误差估计值,作为第二个输出。

F,err = mvtcdf([0 0],[1 1],Rho,nu)
F = 1×1 Matrix{Float64}:
 0.14012965715539616
err = 1×1 Matrix{Float64}:
 1.0e-8

# 另请参阅

mvtcdf | mvtpdf | mvtrnd