ความหนาแน่นและความหนาแน่นสะสมสำหรับ multivariate-t

การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

Surajit Ray

Professor, University of Glasgow

ตัวอย่างการแจกแจง multivariate t

  • หุ้นรายตัว
    • Univariate t
  • พอร์ตโฟลิโอ (3 หุ้น)
    • Multivariate t
  • ความน่าจะเป็นที่หุ้นทั้งสามอยู่ระหว่าง $100-150
    • pmvt()
  • ช่วงค่าที่หุ้นผันผวน 95% ของเวลา
    • qmvt()
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การคำนวณความหนาแน่นด้วย dmvt

dmvt(x, delta = rep(0, p), sigma = diag(p), log = TRUE)
  • x สามารถเป็น vector หรือ matrix ได้
  • ต่างจาก dmvnorm ตรงที่ค่าเริ่มต้นคำนวณในสเกล log

หากต้องการความหนาแน่นในสเกลปกติ ให้ใช้

dmvt(x, delta = rep(0, p), sigma = diag(p), log = FALSE)
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การคำนวณความหนาแน่นของการแจกแจง multivariate t บน grid

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

Inverse cdf ของการแจกแจง t

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

  • คำนวณควอนไทล์ของการแจกแจง multivariate t
  • เทคนิคการคำนวณคล้ายกับฟังก์ชัน qmvnorm()

คำนวณควอนไทล์ที่ 0.95 สำหรับ 3 องศาอิสระ

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...