多變量 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 不同,預設以 log 尺度計算

若要取得自然尺度的密度,請用

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, ...)
  • 計算 cdf 或體積,類似常態的 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...