【发布时间】:2017-06-03 01:50:40
【问题描述】:
假设我有以下“for”循环。具体来说,我构建的这段代码首先计算所有指定风格的 ARCH(1) 模型的 AIC,然后计算所述风格的 GARCH(1,1) 模型的 AIC。
library(rugarch)
bchain_2012_logreturns=diff(log(prices))
aic_2012=matrix(NA,14,1)
garch_flavor=c("GARCH","AVGARCH","TGARCH","GJRGARCH","NGARCH","NAGARCH","APARCH")
k=1
for (i in 0:1){
for (j in garch_flavor){
model_2012=ugarchspec(variance.model = list(model="fGARCH", submodel = j, garchOrder = c(1, i)),mean.model = list(armaOrder = c(0, 0)))
modelfit_2012=ugarchfit(spec=model_2012, data=bchain_2012_logreturns, solver="hybrid")
aic_2012[k,]=infocriteria(modelfit_2012)[1]
k=k+1
}
}
如 R CRAN 上的“rugarch”包小插图中所述(参见链接:https://cran.r-project.org/web/packages/rugarch/vignette/Introduction_to_the_rugarch_package.pdf),“eGARCH”模型风格不包括在 GARCH 系列(即“fGARCH”)子模型中。使用“rugarch”包估计 eGARCH 模型所需的命令如下:
model_2012=ugarchspec(variance.model = list(model="eGARCH",garchOrder = c(1, 1)),mean.model = list(armaOrder = c(0, 0)))
modelfit_2012=ugarchfit(spec=model_2012, data=bchain_2012_logreturns, solver="hybrid")
我需要同时做的是:
1) 将 eGARCH 估计的最后一个命令集成到循环中,这样我就只有一个命令来计算所有 8 个 GARCH 模型风格的 AIC。
2) 将“统一”循环设置为仅在 (1,1) 阶的 eGARCH 上进行迭代。
我是 R 编程的新手,这对我来说是个不小的问题。
提前谢谢你。
【问题讨论】: