R 에서 가치 모형으로 시계열 분석 하는 법
실습
가치 모델은 아치 이펙트를 설명하는 유용한 수단으로써 분석 절차 자체는 아르마 모델과 흡사하다.
위의 그래프는 내장데이터 EuStockMarkets
에서 DAX
만 뽑아내서 그린 것으로, 1991년부터 1999년까지 독일 DAX지수를 나타낸다.
리턴의 제곱을 보면 거의 확실하게 아치 이펙트가 있는 것으로 보인다. 리턴의 제곱이 아르마 모델을 따르는지 확인하기 위해서 EACF를 사용해보자.
리턴의 제곱이 아르마 모델 $ARMA(1,3)$ 을 따른다고 추측되므로 리턴이 $GARCH(1,3)$ 을 따른다는 가정을 세워볼 수 있다. tseries
패키지의 garch()
함수를 사용하면 가치 모델로 분석을 할 수 있다.
분석 결과를 읽는 방법은 회귀분석과 똑같은데, 차이점이 있다면 그 밑에 알아서 하르케-베라 테스트Jarque Bera Test와 륭-박스 테스트Box-Ljung Test도 해준다는 것이다. 륭-박스 테스트의 p밸류가 크게 나왔기 때문에 모델 피팅 자체는 잘 된 것으로 보이는데, 하르케-베라 테스트의 p밸류가 낮다는 것은 좋은 징조가 아니다. 잔차의 정규성에 문제가 있다는 것인데, 히스토그램을 그려 체크해보자.
가만보면 어마어마하게 큰 이상치 때문에 정규성이 결여되었음을 알 수 있다. 왜도는 이상치에 영향을 크게 받는데, 아무래도 그 때문에 검정이 왜곡된 것으로 보인다. 이상치를 제거하고 다시 검정해보자.
이상치를 뺐을 때 하르케-베라 테스트는 잔차가 정규성을 가진다는 것을 지지한다. 그러나 여전히 샤피로-윌크 테스트는 정규성이 결여되었다고 판단했는데, 같은 정규성 검정이지만 이렇게 다른 경우도 충분히 있을 수 있다. 시계열 분석의 특성상 너무 큰 이상치가 있는 경우가 아주 흔한데, 하르케-베라 테스트는 샤피로-윌크 테스트와 달리 이상치를 제거했을 때 정규분포임이 드러나는 경우가 더 많다.
적어도 이 경우엔 샤피로-윌크 테스트를 통과하지 못했지만 하르케-베라 테스트를 통과했으므로 잔차가 정규성을 가진다고 보아도 무방하다. 결론적으로, 리턴이 $GARCH(1,3)$ 을 따른다고 말해도 좋다.
코드
다음은 예제 코드다.
library(TSA)
library(tseries)
returnize <- function(data) {return(diff(log(data)))}
DAX <- ts(EuStockMarkets[,1],start=1)
r.DAX <- returnize(DAX)
eacf(r.DAX^2)
out <- garch(r.DAX,order=c(1,3)); summary(out)
resi<-na.omit(residuals(out))
win.graph(6,3); hist(resi)
resi2<-resi[abs(resi)<2.58]
jarque.bera.test(resi2)
shapiro.test(resi2)