我很难理解dccforecast中的n.roll真的如何。我将给出生成的代码和图表。请帮助我理解并解决问题。
首先,让我介绍一下我的数据。我有两个时间序列:每日4171次观察(16年)。我有兴趣使用前6年的数据来估算dcc的系数并预测相关性
i)剩下的10年(每日2609次观察)
[t = 0] ----估计期(1562)----- [t = 1562] ---预测期(2609)--- [t = 4171]
ii)接下来的5年(每日1305次观察)。
[t = 0] ----估计期(1562)----- [t = 1562] ---预测期(1305)--- [t = 2864]
在我的预测期间的每个t点,我想使用时间t的所有可用数据并获得t + 1的预测。
对于时间t + 1的预测,请使用0到t
之间的所有数据对于时间t + 2的预测,请使用0到t + 1
之间的所有数据对于时间t + 3的预测,请使用0到t + 2之间的所有数据
对于时间t + 4的预测,请使用0到t + 3
之间的所有数据等等。
这是我的案例i的代码:
xspec = ugarchspec(mean.model = list(armaOrder = c(1, 0)), variance.model = list(garchOrder = c(1,1), model = 'gjrGARCH'), distribution.model = 'norm')
uspec = multispec(replicate(2, xspec)) # 2 is the number of variables
dccspec = dccspec(uspec = uspec, dccOrder = c(1, 1), model='aDCC', distribution = 'mvnorm')
dcc.fit.focast = dccfit(dccspec, data = tst, out.sample = 2609, forecast.length = 2609, fit.control = list(eval.se=T))
dcc.focast=dccforecast(dcc.fit.focast, n.ahead = 1, n.roll = 0)
plot(dcc.focast, which = 3, series=c(1,2))
我正在定义" n.roll = 0"因为正如在" rmgarch"手动(当n.roll = 0时,所有预测均基于ENGLE和SHEPPARD(2001)论文中描述的近似方法的无条件n-ahead预测程序),我有兴趣使用Engle和Sheppard中使用的近似方法(2001年)。
但是,当我将n.roll从0更改为1305时;
dcc.focast=dccforecast(dcc.fit.focast, n.ahead = 1, n.roll = 1305)
plot(dcc.focast, which = 3, series=c(1,2))
然后我得到以下图表:
当我增加n.roll时,预测的结束点也会增加。 " rmgarch"手册描述n.roll为无条件均值。但不知何故,这与产生的预测数量有关。
有人可以解释一下,并就如何获得我需要的预测提出建议吗?
提前致谢,
马丁
答案 0 :(得分:0)
我最后做了一个循环来做一步预测。它起作用了。