n.roll и n.ahead в пакете ругарх R

Я хочу спрогнозировать волатильность с помощью модели garch(1,1) для двух серий доходности AAPL и MSFT.

Сначала я получаю данные из Yahoo Finance с помощью getSymbols и рассчитываю прибыль по ln(P1)-ln(P0).

Затем я устанавливаю sgarch(1,1) с out.sample = 209.

Наконец, я использую ugarchforecast с n.roll и n.ahead равными 209.

Я хочу получить прогноз из 209 наблюдений, но чтобы каждая оценка прогнозировалась с прогнозированием на 1 шаг вперед с использованием каждого наблюдения в исходном наборе выборки. Более конкретно, я хочу, чтобы первое из 209 прогнозных наблюдений было прогнозируемым со всеми данными в выборке, затем второе прогнозируемое наблюдение было предсказано со всеми данными в выборке и первое фактическое наблюдение из набора исходящей выборки и т. Д.

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]], n.ahead = 209, n.roll = 209, out.sample = 209)

Это так или я ошибаюсь?

Я очень признателен за вашу помощь, спасибо!

0 ответов

Другие вопросы по тегам