簡體   English   中英

在R中擬合GARCH模型

[英]Fitting a GARCH model in R

我正在嘗試在R中生成不同的GARCH模型,並通過AIC值(最小的是最合適的)比較它們。 我使用了數據集,並通過兩種方法取出了AIC。

方法1:我獲取了股票價格數據集(從2010年1月4日到2016年11月9日,s&p cnx nifty的收盤數據,每天),先記錄日志,然后取差價,然后通過自動有價證券(關於對數值的差,我們將數據集稱為A),發現最佳擬合為MA1,然后使用

Res2<- (MA1$residuals)^2

在方法一中,我使用了語法

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

它的AIC值為-23682.50。 使用了相同的軟件包“ tseries”。

方法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中,並且模型本身適合ARIMA90,0,1)(即MA1)的GARCH(1,1)。

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

方法2的輸出

我想問的是為什么兩個值存在差異。 另外,如果有人可以向我解釋如何使用fgarch軟件包代替rugarch以及兩者之間的區別,那將是非常有益的。

如果由於數據可用性而難以進行分析,請告知我。 如果問題的框架不正確,我們深表歉意。

這也許是有點晚了,但是這已經被問和前一陣子在回答關於跨驗證這個帖子這個職位

總結上述答案:

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

對於rugarch軟件包,您可以在此處第23頁上看到AIC的規范。

對於您的特定示例,您可以通過以下任一方式將兩者進行比較:

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

    要么

  • AIC從tseries系列中除以時間序列的長度,例如:

     CIC = AIC(garchoutput)/length(Res2) 

還有一件事。 據我所知,在將auto.arima模型擬合到數據之前,不需要對擬合的auto.arima對象的殘差求平方。 如果您在使用方reisiduals你可能會比較兩個非常不同的數據集的tseries機型,並在您的登錄回報rugarch模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM