多元 t 的密度与累积分布

R 中的多元概率分布

Surajit Ray

Professor, University of Glasgow

多元 t 分布示例

  • 个股
    • 单变量 t
  • 组合(3 支股票)
    • 多元 t
  • 三只股票都在 $100–150 之间的概率
    • pmvt()
  • 股票95%波动范围
    • qmvt()
R 中的多元概率分布

用 dmvt 计算密度

dmvt(x, delta = rep(0, p), sigma = diag(p), log = TRUE)
  • x 可为向量或矩阵
  • dmvnorm 不同,默认在对数尺度计算

如需自然尺度密度,请用

dmvt(x, delta = rep(0, p), sigma = diag(p), log = FALSE)
R 中的多元概率分布

在网格上计算多元 t 分布的密度

x <- seq(-3, 6, by = 1); y <- seq(-3, 6, by = 1)
d <- expand.grid(x = x, y = y)                   
del1 <- c(1, 2); sig1 <- matrix(c(1, .5, .5, 2), 2)
dens <- dmvt(as.matrix(d), delta = del1, sigma = sig1, df = 10, log = FALSE)
scatterplot3d(cbind(d, dens), type = "h", zlab = "density")

R 中的多元概率分布

改变自由度的影响

R 中的多元概率分布

用 pmvt 计算累积分布

pmvt(lower = -Inf, upper = Inf, delta, sigma, df, ...)
  • 计算累积分布函数(体积),类似正态的 pmvnorm()
pmvt(lower = c(-1, -2), upper = c(2, 2), delta = c(1, 2), sigma = diag(2), df = 6)
[1] 0.3857
attr(,"error")
[1] 0.0002542
attr(,"msg")
[1] "Normal Completion"
R 中的多元概率分布

t 分布的逆累积分布

qmvt(p, interval, tail, delta, sigma, df)

  • 计算多元 t 分布的分位数
  • 计算方法类似 qmvnorm()

计算自由度为 3 的 0.95 分位数

qmvt( p = 0.95, sigma = diag(2), tail = "both", df = 3)
$quantile
[1] 3.96

$f.quantile
[1] -1.05e-06

attr(,"message")
[1] "Normal Completion"
R 中的多元概率分布

让我们动手练习吧!

R 中的多元概率分布

Preparing Video For Download...