什么真的" n.roll" in" dccforecast"呢?

时间:2017-06-24 15:18:52

标签: r estimation

我很难理解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

但是,当我将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=1305

当我增加n.roll时,预测的结束点也会增加。 " rmgarch"手册描述n.roll为无条件均值。但不知何故,这与产生的预测数量有关。

有人可以解释一下,并就如何获得我需要的预测提出建议吗?

提前致谢,

马丁

1 个答案:

答案 0 :(得分:0)

我最后做了一个循环来做一步预测。它起作用了。