불필요한 복잡성 피하기

R에서의 GARCH 모델

Kris Boudt

Professor of finance and econometrics

불필요한 복잡성 피하기

  • 다음을 알고 있다면
    • 평균 동학은 미미하고
    • 분산에 레버리지 효과가 없으며
    • 분포가 대칭이고 두터운 꼬리를 가집니다.

그렇다면 상수 평균, 표준 GARCH(1,1), 학생 t 분포 지정이 적절합니다:

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
R에서의 GARCH 모델

파라미터 추정에 제약 걸기

  • 파라미터가
    • 특정 값과 같거나
    • 특정 구간에 있다면
  • 다음 메서드로 사양에 제약을 부여하세요:
    • setfixed()
    • setbounds()
R에서의 GARCH 모델

환율 데이터에 적용

사양 및 추정

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

추정 결과

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-3.562136e-05  8.005123e-08  3.097322e-02  9.674496e-01  8.821902e+00
R에서의 GARCH 모델

setfixed() 예시

  • alpha1 = 0.05, shape = 6을 알고 있다면, 추정에 그 값을 고정합니다.
  • 방법: ugarchspec 객체에 setfixed() 사용
setfixed(garchspec) <- list(alpha1 = 0.05, shape = 6)

결과

garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-4.142922e-05  2.061772e-07  5.000000e-02  9.489622e-01  6.000000e+00
R에서의 GARCH 모델

파라미터 경계

  • GARCH 파라미터는 구간으로 제한할 수 있습니다.
  • 때로는 그 구간이 넓습니다:
    • 분산이 양수이려면 예를 들어 분산 파라미터들($\omega$, $\alpha$, $\beta$, $\gamma$)이 모두 양수여야 합니다.
  • 때로는 구간이 더 좁습니다:
    • $\alpha$의 그럴듯한 값: 0.05~0.2
    • $\beta$의 그럴듯한 값: 0.7~0.95
  • 이러한 경계 제약은 setbounds() 메서드로 부여할 수 있습니다.
R에서의 GARCH 모델

setbounds() 예시

setbounds(garchspec) <- list(alpha1 = c(0.05, 0.2), beta1 = c(0.8, 0.95))
R에서의 GARCH 모델

직관으로 불필요한 복잡성을 피하세요.

보유한 정보를 활용하세요:

  • 단순하고 효율적인 모델 구성
  • 파라미터 고정 또는 범위 설정
  • GARCH 동학을 현실적으로 설정:

    • 변동성의 표본 표준편차 주변 평균회귀
      sd(EURUSDret) # returns a value of 0.006194049
      
R에서의 GARCH 모델

변동성 군집과 평균회귀

R에서의 GARCH 모델

분산 타기팅(Variance targeting)

  • 수학적으로는, GARCH 모형이 함의하는 무조건분산이 표본분산 $\hat \sigma^2$ 와 같아야 합니다.
  • 방법: ugarchspec()variance.model에서 variance.targeting = TRUE로 설정합니다.
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                        variance.model = list(model = "sGARCH",
                        variance.targeting = TRUE),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)
all.equal(uncvariance(garchfit), sd(EURUSDret) ^ 2, tol = 1e-4)
TRUE
R에서의 GARCH 모델

GARCH 모형에 제약을 부여해 봅시다

R에서의 GARCH 모델

Preparing Video For Download...