Проблемы с иерархическим моделированием / согласованием в тидивертах
Я пытаюсь выполнить иерархическое прогнозирование по образцу семинара Роба Хайндмана Rstudio.conf и столкнулся с некоторыми проблемами. Вот мой код:
library(dplyr)
library(tsibbledata)
library(tsibble)
library(fable)
aus_retail_2013_tr <- aus_retail %>%
filter(Month <= yearmonth("2013 Dec"))
aus_retail_2013_vl <- aus_retail %>%
filter(Month > yearmonth("2013 Dec"))
hmod <- aus_retail_2013_tr %>%
aggregate_key(State*Industry, Turnover=sum(Turnover)) %>%
model(ar=ARIMA(log(Turnover))) %>%
reconcile(ar_adj=min_trace(ar))
fcasts_hmod <- forecast(hmod, aus_retail_2013_vl)
fcasts_hmod %>%
filter(is_aggregated(Industry), State == "Victoria") %>%
autoplot()
Результат графика ниже.
Мои основные проблемы:
- Похоже, что сверка вообще не изменила прогнозы. Изображение показывает, что
ar
а такжеar_adj
линии идентичны. - Прогноз рассчитан только на период с 2014 по 2015 год, тогда как я знаю, что полный набор данных относится к 2018 году.
Как я могу это исправить? Последнее, вероятно, связано с тем, что не все временные ряды охватывают весь период, но как я могу получитьreconcile
чтобы не пропускать пропущенные периоды?
Это с dplyr 0.8.5, fable 0.2.0, fabletools 0.1.3 и tsibble 0.8.6. Я получаю одинаковые результаты как в Ubuntu/R 3.6.3, так и в Windows 10 / R 4.0.0.
PS. Попытка сделать прогноз на фиксированный горизонт приводит к ошибке:
> fcasts_hmod <- forecast(hmod, h="5 years")
Error: Reconciliation of non-normal forecasts is not yet supported.
Run `rlang::last_error()` to see where the error occurred.
1 ответ
Эти проблемы являются ошибками (или, более того, выходят за рамки текущей реализации согласования). Вы можете сообщить об этом через URL-адрес пакета BugReports (https://github.com/tidyverts/fabletools/issues).
Мои основные проблемы:
На самом деле сверка, похоже, никак не изменила прогнозы. Изображение показывает, что строки ar и ar_adj идентичны.
Прогноз рассчитан только на период с 2014 по 2015 год, тогда как я знаю, что полный набор данных относится к 2018 году.
Прогнозы для согласованных моделей должны были содержать ошибки, что является текущим поведением в разрабатываемой версии. Обратите внимание, что вашforecast()
new_data
Аргумент содержит 148 временных рядов, но вы строите прогнозы на основе 181 модели. Это связано с тем, что запрошенные прогнозы предназначены только для рядов нижнего уровня (aus_retail_2013_vl
не агрегировался).
PS. Попытка сделать прогноз на фиксированный горизонт приводит к ошибке:
Error: Reconciliation of non-normal forecasts is not yet supported. Run `rlang::last_error()` to see where the error occurred.```
Это связано с тем, что ваша модель имеет преобразованную в журнал переменную ответа, которая при обратном преобразовании создает прогнозы с распределением logNormal. Сверка вероятностного прогноза затруднена и в настоящее время реализована только для нормальных распределений. Я добавлю сверку точечных прогнозов в качестве запасного варианта (https://github.com/tidyverts/fabletools/issues/216).