2016-11-15 1 views
0

다른 GARCH 모델을 R에 전나무 쳐서 AIC 값 (최소값이 가장 적합 함)을 통해 비교하려고합니다. 데이터 세트를 사용하고 두 가지 방법으로 AIC를 추출했습니다.GARCH 모델의 피팅 R

방법 1 : 주식 가격 데이터를 가져 와서 (2010 년 1 월 4 일부터 2016 년 11 월 9 일까지 매일 & pnnxty의 데이터를 닫음) 로그를 취한 다음 자동 arima 로그 값의 차이는, 이제 방법은 하나에서

Res2<- (MA1$residuals)^2 

를 사용하여 잔차 '사각형을받은 후 가장 적합한이 MA1 인 것을 발견로 설정된 데이터)를 호출하자, 나는 구문

garchoutput <- garch(Res2,order=c(1,1)) 
    CIC<-AIC(garchoutput) 
를 사용했다

그것은 -23682.50의 AIC 값을 제공합니다. 같은 패키지 'tseries'를 사용했습니다.

방법 2 : I는 다른 패키지 즉 'rugarch'를 사용하고 다음 구문을 사용 여기

spec <- ugarchspec(variance.model = list(garchOrder = c(1, 1), 
            submodel = NULL, 
            external.regressors = NULL, 
            variance.targeting = FALSE), 

       mean.model  = list(armaOrder = c(0, 1), 
            external.regressors = NULL, 
            distribution.model = "norm", 
            start.pars = list(), 
            fixed.pars = list())) 

garch <- ugarchfit(spec = spec, data = A, solver.control = list(trace=0)) 
garch 

I가에 넣어 데이터와 ARIMA90 자체가 GARCH (1,1)에 적합한 모델 , 0,1) 즉, MA1.

내가받을 출력은 많은 양의 데이터를 가지고 있지만 그것은 또한

OUTPUT of Method 2

은 내가 문의 원하는 것은 두 값의 차이가있는 이유에있는 AIC 값이 있습니다. 또한, 누군가가 나에게 패키지 fgarch를 루가치 대신 사용할 수있는 방법과 그 차이점을 설명 할 수 있다면 매우 유용 할 것입니다.

데이터 가용성 때문에 분석하기가 어렵다는 사실을 알려 주시기 바랍니다. 질문의 틀이 틀리면 사과드립니다.

답변

0

다소 늦었을 지 모르지만 한참 전에 Cross Validated에서 this post 또는 this post으로 질문하고 답변 해 주셨습니다. 는 기본적으로 길이로 나눈 "정상"AIC입니다 인 AIC의 버전을 조정 사용

일부 패키지 (예 : fgarch, rugarch 또는 rmgarch) :

는 위에서 언급 한 답변을 요약하면 시계열 (일반적으로 n 또는 N)로 표시됩니다.

rugarch 패키지의 경우 AIC here on page 23 사양을 볼 수 있습니다.당신이 중 하나에 의해 두 비교할 수 있습니다 특정 예를 들어

: 당신의 시계열의 길이 rugarch에서

  • AIC를 곱하여을

    또는

  • AIC는 길이가 tseries에서 나뉩니다.

    CIC = AIC(garchoutput)/length(Res2) 
    

한 가지 더 : 같은 R 시계열. 내가 아는 한, garch-model을 데이터에 맞추기 전에 여러분의 fitting 된 auto.arima 오브젝트로부터 잔차를 제곱 할 필요가 없습니다. tseries 모델에서 제곱 된 이진수를 사용하고 rugarch 모델의 로그 - 리턴을 사용하면 매우 다른 두 데이터 세트를 비교할 수 있습니다.

관련 문제