Проблемы с иерархическим моделированием / согласованием в тидивертах

Я пытаюсь выполнить иерархическое прогнозирование по образцу семинара Роба Хайндмана 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).

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