시장은 계단으로 오르고, 엘리베이터로 내려간다

R에서의 GARCH 모델

Kris Boudt

Professor of finance and econometrics

방법

ugarchspec()distribution.model 인수를 "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")                         
R에서의 GARCH 모델

정규 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) $$

R에서의 GARCH 모델

검정

  • 주의: 표준화 수익률의 정규성은 가정에서 비롯됩니다.
  • 표준화 수익률을 계산하여 가정의 타당성을 검정해 봅시다.
R에서의 GARCH 모델

추정된 표준화 수익률

  • 공식

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

R에서의 계산

# Obtain standardized returns
stdret <- residuals(garchfit, standardize = TRUE)
R에서의 GARCH 모델

정규성 가정 검정

library(PerformanceAnalytics)
chart.Histogram(sp500ret, methods = c("add.normal", "add.density"),
          colorset = c("gray", "red", "blue"))
R에서의 GARCH 모델

R에서의 GARCH 모델

꼬리

R에서의 GARCH 모델

해결책

  • 현실적인 분포는 다음을 반영해야 합니다:

    • 두꺼운 꼬리: 정규분포보다 큰 수익률(양/음)이 관측될 확률이 높음
    • 비대칭성: 수익률 분포의 왜도
  • rugarch에서는 비대칭 스튜던트 t 분포를 사용합니다:

garchspec <- ugarchspec(distribution.model = "sstd")
R에서의 GARCH 모델

비대칭 스튜던트 t 분포의 모수

  • 정규분포에 비해 비대칭 스튜던트 t 분포는 두 개의 추가 모수를 가집니다:

    • 자유도 모수 $\nu$ (rugarch: shape): $\nu$가 작을수록 꼬리가 두꺼워집니다.
    • 왜도 모수 $\xi$ (rugarch: skew): $\xi=1$이면 대칭, $\xi<1$이면 음의 왜도, $\xi>1$이면 양의 왜도.
  • 특수한 경우:

    • $\nu=\infty$이고 $\xi=1$이면: 정규분포.
    • $\xi=1$이면: 스튜던트 t 분포.
R에서의 GARCH 모델

R에서의 GARCH 모델

R에서의 GARCH 모델

R에서의 GARCH 모델

R에서의 GARCH 모델

비대칭 스튜던트 t를 이용한 GARCH 모델 추정

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
R에서의 GARCH 모델

연습해 봅시다!

R에서의 GARCH 모델

Preparing Video For Download...