2016-11-15 314 views
0

我試圖在R中求解不同的GARCH模型,並通過AIC值(最小的一個是最合適的)進行比較。我已經使用了一個數據集並通過兩種方法取出了AIC。方法1:我取得了股票價格的數據集(2010年1月4日至2016年11月9日每日的關閉數據),取日誌,然後通過差異,然後通過自動arima(on對數值的差異,讓我們稱之爲)發現,最適合的還是MA1數據設置爲A,然後得到使用在R中擬合GARCH模型

Res2<- (MA1$residuals)^2 

在方法一個殘差廣場,我已經使用的語法

garchoutput <- garch(Res2,order=c(1,1)) 
    CIC<-AIC(garchoutput) 

它給我一個-23682.50的AIC值。使用同一套包裝'T系列'。

方法2:我使用的另一封裝即「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 

在這裏,我把它在A中的數據和本身裝配在GARCH(1,1)的模型ARIMA90 ,0,1)即MA1。

我收到的輸出有很多數據,但它也有AIC值

OUTPUT of Method 2

我想詢問是,爲什麼有兩個值的差。此外,如果有人也可以向我解釋如何使用軟件包fgarch而不是rugarch以及兩者之間的差異,那將是非常有益的。

請讓我知道,因爲數據的可用性,很難做分析。 道歉,如果問題沒有適當的框架。

回答

0

這可能有點晚了,但這個問題已經在交叉驗證了一段時間之前在this postthis post

爲了總結上述的答案:

某些軟件包(例如fgarchrugarchrmgarch)使用縮放版本的AIC,這是基本上是「正常」的AIC除以長度的時間序列(通常用nN)表示。

對於rugarch包,您可以看到AIC here on page 23的規格。

爲了您的具體的例子,你可以在兩個由兩種比較:

  • 乘以的AIC從rugarch與時間序列的長度

  • 從你的長度tseries的AIC R個時間系列,如:

    CIC = AIC(garchoutput)/length(Res2) 
    

一件事。據我所知,在將garch模型擬合到數據之前,您不需要從已裝配的物體上對殘差進行平方。如果您在tseries模型中使用平方的餘數,並在rugarch模型中使用對數迴歸,則可以比較兩組截然不同的數據。