我是R的新用户。请帮帮我!
我有814个资产的1114个观察结果。例如,我已经为前1000个数据点拟合了一个多变量DCC-GARCH模型,我希望在3个时期之后进行1-ahead预测,例如
1) Data[1:1000,] In-sample data, forecast for Data[1001,]
2) Data[1:1001,] In-sample data, forecast for Data[1002,]
3) Data[1:1002,] In-sample data, forecast for Data[1003,]
以下是我可重现的代码: -
# load libraries
library(rugarch)
library(rmgarch)
library(FinTS)
library(tseries)
library (fPortfolio)
data(dji30retw)
for (i in 1:3) {
Dat.Initial = dji30retw[, 1:8, drop = FALSE]
Dat <- Dat.Initial[1:(1000+(i-1)), ]
#Fitting the data
uspec = ugarchspec(mean.model = list(armaOrder = c(0,0)), variance.model = list(garchOrder = c(1,1), model = "sGARCH"), distribution.model = "norm")
spec1 = dccspec(uspec = multispec( replicate(8, uspec)), dccOrder = c(1,1), distribution = "mvnorm")
fit1 <- list()
fit1[[i]] = dccfit(spec1, data = Dat, out.sample = 1, fit.control = list(eval.se=T))
#Out of sample forecasting
dcc.focast <- list()
dcc.focast[[i]]=dccforecast(fit1[[i]], n.ahead = 1, n.roll = 0)
print(dcc.focast[[i]])
}
代码完美无缺。我现在可以获得我的dcc.focast值。但是,如果我执行
,为什么呢 dcc.focast[[1]]
NULL
它给了我“NULL”。它不应该像循环中的“print(dcc.focast [[i]])”一样产生相同的答案吗?
这里的问题,它只给了我dcc.focast [[3]]。其余的都是“NULL”。我做错了什么错?任何人都可以帮忙解释一下吗?
答案 0 :(得分:0)
修改代码以定义for
之外的列表。在循环内重新定义列表时,您将删除以前的计算。
data(dji30retw)
fit1 <- list()
dcc.focast <- list()
for (i in 1:3) {#i=1
Dat.Initial = dji30retw[, 1:8, drop = FALSE]
Dat <- Dat.Initial[1:(1000+(i-1)), ]
#Fitting the data
uspec = ugarchspec(mean.model = list(armaOrder = c(0,0)), variance.model = list(garchOrder = c(1,1), model = "sGARCH"), distribution.model = "norm")
spec1 = dccspec(uspec = multispec( replicate(8, uspec)), dccOrder = c(1,1), distribution = "mvnorm")
fit1[[i]] = dccfit(spec1, data = Dat, out.sample = 1, fit.control = list(eval.se=T))
#Out of sample forecasting
dcc.focast[[i]]=dccforecast(fit1[[i]], n.ahead = 1, n.roll = 0)
print(dcc.focast[[i]])
}
summary(dcc.focast)
dcc.focast[[1]]
> summary(dcc.focast)
Length Class Mode
[1,] 1 DCCforecast S4
[2,] 1 DCCforecast S4
[3,] 1 DCCforecast S4
> dcc.focast[[1]]
*---------------------------------*
* DCC GARCH Forecast *
*---------------------------------*
Distribution : mvnorm
Model : DCC(1,1)
Horizon : 1
Roll Steps : 0
-----------------------------------
0-roll forecast:
, , 1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1.0000 0.3378 0.3244 0.2383 0.2730 0.5086 0.3470 0.5073
[2,] 0.3378 1.0000 0.3498 0.5423 0.5910 0.3321 0.2802 0.3658
[3,] 0.3244 0.3498 1.0000 0.2372 0.2771 0.3479 0.2433 0.3625
[4,] 0.2383 0.5423 0.2372 1.0000 0.5746 0.2877 0.2303 0.3593
[5,] 0.2730 0.5910 0.2771 0.5746 1.0000 0.3063 0.2169 0.3101
[6,] 0.5086 0.3321 0.3479 0.2877 0.3063 1.0000 0.3637 0.4307
[7,] 0.3470 0.2802 0.2433 0.2303 0.2169 0.3637 1.0000 0.3976
[8,] 0.5073 0.3658 0.3625 0.3593 0.3101 0.4307 0.3976 1.0000