ตลาดขึ้นบันได แต่ลงลิฟต์

GARCH Models in R

Kris Boudt

Professor of finance and econometrics

ทำอย่างไร?

เปลี่ยนอาร์กิวเมนต์ distribution.model ของ ugarchspec() จาก "norm" เป็น "sstd":

garchspec <- ugarchspec( mean.model = list(armaOrder = c(0, 0)),
                         variance.model = list(model = "sGARCH"),
                         distribution.model = "norm")

$$ \downarrow$$

garchspec <- ugarchspec( mean.model = list(armaOrder = c(0, 0)),
                         variance.model = list(model = "sGARCH"),
                         distribution.model = "sstd")                         
GARCH Models in R

โมเดล GARCH แบบปกติ

ภายใต้ข้อสมมติของโมเดล

$$ R_{t} = \mu_{t} + e_{t} $$ $$ e_{t} \sim N(0, \sigma^{2}_{t}) $$

จะได้ว่า

$$ \frac{R_{t} - \mu_{t}}{\sigma_{t}} \sim N(0, 1) $$

GARCH Models in R

มาทดสอบกัน

  • ข้อควรระวัง: การกระจายตัวแบบปกติของผลตอบแทนมาตรฐานมาจากข้อสมมติ
  • มาคำนวณผลตอบแทนมาตรฐานและทดสอบว่าข้อสมมตินั้นถูกต้องหรือไม่
GARCH Models in R

ผลตอบแทนมาตรฐานที่ประมาณค่าแล้ว

  • สูตร

$$ Z_{t} = \frac{R_{t} - \hat{\mu_{t}}}{ \hat{\sigma_{t}}} $$

การคำนวณใน R

# Obtain standardized returns
stdret <- residuals(garchfit, standardize = TRUE)
GARCH Models in R

การทดสอบข้อสมมติการกระจายตัวแบบปกติ

library(PerformanceAnalytics)
chart.Histogram(sp500ret, methods = c("add.normal", "add.density"),
          colorset = c("gray", "red", "blue"))
GARCH Models in R

GARCH Models in R

หาง

GARCH Models in R

วิธีแก้ปัญหา

  • การแจกแจงที่สมจริงจึงต้องรองรับ

    • หางหนา: ความน่าจะเป็นที่จะเห็นผลตอบแทนขนาดใหญ่ (บวกหรือลบ) สูงกว่าการแจกแจงแบบปกติ
    • ความเบ้: ความไม่สมมาตรของการแจกแจงผลตอบแทน
  • ใน rugarch สามารถใช้การแจกแจง skewed student t ได้:

garchspec <- ugarchspec(distribution.model = "sstd")
GARCH Models in R

พารามิเตอร์ของการแจกแจง skewed student t

  • เมื่อเทียบกับการแจกแจงแบบปกติ การแจกแจง skewed student t มีพารามิเตอร์เพิ่มอีก 2 ตัว:

    • พารามิเตอร์องศาอิสระ $\nu$ (ใน rugarch: shape): ค่า $\nu$ ยิ่งน้อย หางยิ่งหนา
    • พารามิเตอร์ความเบ้ $\xi$ (ใน rugarch: skew): เมื่อ $\xi=1$: สมมาตร เมื่อ $\xi<1$: ความเบ้ลบ เมื่อ $\xi>1$: ความเบ้บวก
  • กรณีพิเศษ:

    • เมื่อ $\nu=\infty$ และ $\xi=1$: การแจกแจงแบบปกติ
    • เมื่อ $\xi=1$: การแจกแจง student t
GARCH Models in R

GARCH Models in R

GARCH Models in R

GARCH Models in R

GARCH Models in R

การประมาณค่าโมเดล GARCH ด้วย skewed student t

กำหนดอาร์กิวเมนต์ distribution.model เป็น "sstd"

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "sstd")

ประมาณค่าโมเดล

garchfit <- ugarchfit(data = sp500ret, spec = garchspec)
coef(garchfit)
          mu        omega       alpha1        beta1         skew        shape 
5.669200e-04 6.281258e-07 7.462984e-02 9.223701e-01 9.436331e-01 6.318621e+00
GARCH Models in R

มาฝึกกันเถอะ!

GARCH Models in R

Preparing Video For Download...