โมเดล GARCH: ก้าวต่อไป

GARCH Models in R

Kris Boudt

Professor of finance and econometrics

ผู้คิดค้นโมเดล GARCH

Robert Engle

Engle

Tim Bollerslev

Bollie

GARCH Models in R

สัญกรณ์ (i)

  • อินพุต: อนุกรมเวลาของผลตอบแทน

ความผันผวนที่คาดการณ์

GARCH Models in R

สัญกรณ์ (ii)

  • ณ เวลา $t-1$ จะทำการพยากรณ์ผลตอบแทน $R_t$ ในอนาคต โดยใช้ ชุดข้อมูล ที่มีอยู่ ณ เวลา $t-1$:

ความผันผวนที่คาดการณ์

GARCH Models in R

สัญกรณ์ (iii)

  • การพยากรณ์ผลตอบแทนเฉลี่ย: การพยากรณ์ผลตอบแทนจริงที่ดีที่สุดคืออะไร? ความผันผวนที่คาดการณ์
GARCH Models in R

สัญกรณ์ (iv)

  • จากนั้นพยากรณ์ความแปรปรวน: ผลตอบแทนจะเบี่ยงเบนจากค่าเฉลี่ยได้มากแค่ไหน? ความผันผวนที่คาดการณ์
GARCH Models in R

จากทฤษฎีสู่ปฏิบัติ: โมเดลสำหรับค่าเฉลี่ย

  • ต้องการสมการที่แปลงผลตอบแทนในอดีตเป็นการพยากรณ์ค่าเฉลี่ย ความผันผวนที่คาดการณ์

สำหรับโมเดล AR(MA) สำหรับค่าเฉลี่ย ดูคอร์ส DataCamp เรื่องการวิเคราะห์อนุกรมเวลา

GARCH Models in R

จากทฤษฎีสู่ปฏิบัติ: โมเดลสำหรับความแปรปรวน

  • ต้องการสมการที่แปลงผลตอบแทนในอดีตเป็นการพยากรณ์ความแปรปรวน ความผันผวนที่คาดการณ์
GARCH Models in R

โมเดล ARCH(p): Autoregressive Conditional Heteroscedasticity

  • ต้องการสมการที่แปลงผลตอบแทนในอดีตเป็นการพยากรณ์ความแปรปรวน ความผันผวนที่คาดการณ์
GARCH Models in R

โมเดล GARCH(1,1): Generalized ARCH

  • ต้องการสมการที่แปลงผลตอบแทนในอดีตเป็นการพยากรณ์ความแปรปรวน ความผันผวนที่คาดการณ์
GARCH Models in R

ข้อจำกัดของพารามิเตอร์

เพื่อให้กระบวนการ GARCH สมจริง จำเป็นต้องมีเงื่อนไขดังนี้:

  1. $\omega$, $\alpha$ และ $\beta$ ต้องมีค่า $>0$: เพื่อให้ $\sigma^2_t >0$ ตลอดเวลา

  2. $\alpha + \beta < 1$: เพื่อให้ความแปรปรวนที่พยากรณ์ $\sigma^2_t$ กลับสู่ความแปรปรวนระยะยาวเสมอ:

    • ความแปรปรวนจึงมีลักษณะ "mean-reverting"
    • ความแปรปรวนระยะยาวเท่ากับ $ \frac{\omega}{1-\alpha-\beta}$
GARCH Models in R

การใช้งานใน R - กำหนดอินพุต

  • มาทำความคุ้นเคยกับสมการ GARCH ผ่านโค้ด R:

$$ \sigma^{2}_{t} = \omega + \alpha e^{2}_{t-1} \beta \sigma^{2}_{t-1} $$

# Set parameter values
alpha <- 0.1
beta <- 0.8
omega <- var(sp500ret) * (1 - alpha - beta)
# Then: var(sp500ret) = omega / (1 - alpha - beta)
# Set series of prediction error
e <- sp500ret - mean(sp500ret) # Constant mean
e2 <- e ^ 2
GARCH Models in R

การใช้งานใน R - คำนวณความแปรปรวนที่พยากรณ์

# We predict for each observation its variance. 
nobs <- length(sp500ret)
predvar <- rep(NA, nobs)
# Initialize the process at the sample variance
predvar[1] <- var(sp500ret)
# Loop starting at 2 because of the lagged predictor
for (t in 2:nobs){
   predvar[t] <- omega + alpha * e2[t - 1] + beta * predvar[t-1]
}
GARCH Models in R

การใช้งานใน R - กราฟความผันผวน GARCH

# Volatility is sqrt of predicted variance
predvol <- sqrt(predvar)
predvol <- xts(predvol, order.by = time(sp500ret))
# We compare with the unconditional volatility
uncvol <- sqrt(omega / (1 - alpha-beta))
uncvol <- xts(rep(uncvol, nobs), order.by = time(sp500ret))
# Plot
plot(predvol)
lines(uncvol, col = "red", lwd = 2)
GARCH Models in R

ความผันผวนที่คาดการณ์

GARCH Models in R

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

GARCH Models in R

Preparing Video For Download...