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

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

person Hong Ooi    schedule 23.05.2020    source источник
comment
Использование версий fable / fabletools / etc для разработчиков теперь приводит к ошибке при вызове forecast: Reconciliation of temporal hierarchies is not yet supported.   -  person Hong Ooi    schedule 28.05.2020
comment
Честно говоря, диалект tidyverse сильно снижает мой энтузиазм. Я нахожу это утомительным занятием, хотя, по-видимому, я мог бы это понять. (Я высказал свои возражения по поводу перехода к чистоте к Робу Хайндману, но безрезультатно.) Если вы не связаны с этим фреймворком, пробовали ли вы базовый R с пакетом hts?   -  person Stephan Kolassa    schedule 28.05.2020
comment
@StephanKolassa Я сам не фанат tidyverse, но он выполняет свою работу. Я не пробовал с hts, так как он был устаревшим в пользу версии fabletools, но это может быть единственный выход.   -  person Hong Ooi    schedule 29.05.2020


Ответы (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).

person Mitchell O'Hara-Wild    schedule 11.06.2020