rugarch软件包R中的n.roll和n.ahead

问题描述

我想用garch(1,1)模型预测两个收益序列AAPL和MSFT的波动率。

首先,我使用getSymbols从Yahoo Finance获取数据,并通过ln(P1)-ln(P0)计算收益。

然后我用out.sample = 209拟合sgarch(1,1)。

最后,我使用ugarchforecast,其n.roll和n.ahead等于209。

我想要的是对209个观测值的预测,但是每个估计都可以使用out样本集中的每个观测值进行提前1步的预测来预测。更明确地说,我希望使用所有样本中的数据预测209个预测观察中的第一个,然后使用所有样本中的数据预测第二个预测观察,而使用样本外的第一个实际观察,以此类推。 / p>

getSymbols(c("AAPL","MSFT"))
Apple <- Ad(AAPL)
Msft <- Ad(MSFT)

datos <- data.frame("AAPL" = Apple,"MSFT" = Msft)
retornos <- datos %>% map_df(~diff(log(.x)))

retornosts <- retornos %>% xts(order.by = index(AAPL)[-1])

modelos_garch <- c()
for (i in 1:ncol(retornosts)) {
  x <- ugarchspec()
  z <- ugarchfit(spec = x,data = retornosts[,i],solver = "hybrid",out.sample = 209)
  modelos_garch <- append(modelos_garch,z)
}

pred1 <- ugarchforecast(modelos_garch[[1]],n.ahead = 209,n.roll = 209,out.sample = 209)
pred2 <- ugarchforecast(modelos_garch[[2]],out.sample = 209)

是那样的方式还是我错了?

非常感谢您的帮助,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)