Я пытаюсь использовать forecast reconciliation
в басне для улучшения прогнозов на низких, прерывистых уровнях иерархии. Однако на моем компьютере не хватает памяти для чего-то, кроме тривиальных примеров.
Я основываю свой анализ на примере кода из презентации "Tidy Time Series & Forecasting in R: 10. Согласование прогнозов" (bit.ly/ fable2020, представленный на rstudio :: conf 2020):
tourism %>%
aggregate_key(Purpose * (State / Region), Trips = sum(Trips)) %>%
model(ets = ETS(Tripsl)) %>%
reconcile(ets_adjusted = min_trace(ets)) %>%
forecast(h = 2)
Это прекрасно работает даже на моем ноутбуке с 8 ГБ оперативной памяти.
Однако наши данные имеют гораздо больше уровней и групп иерархии, чем этот пример, и код никогда не может завершиться. В качестве воспроизводимого примера я добавил еще три фиктивных уровня в набор данных "tsibble :: Tourism" и включил их в aggregate_key
. Это исчерпывает память даже на моем сервере ОЗУ 50 ГБ!
tourism %>% mutate(Region1 = Region, Region2 = Region, Region3 = Region) %>%
aggregate_key(Purpose * (State / Region/ Region1 / Region2 / Region3), Trips = sum(Trips)) %>%
model(ets = ETS(Trips)) %>%
reconcile(ets_adjusted = min_trace(ets)) %>%
forecast(h = 2)
Ошибка: невозможно выделить вектор размером 929 КБ
Вопрос Есть ли какой-нибудь способ, которым я могу выполнить это, не уменьшая уровни иерархии и не исчерпывая память? Спасибо!