Подгонка модели к высокочастотному таймсерию и прогнозирование на краткосрочную перспективу с помощью fable
У меня есть таймсерии значений с довольно высокой частотой (15 минут). Временной ряд не имеет пропущенных значений и показывает некоторые дневные и еженедельные периодические компоненты.
Я пытаюсь смоделировать это с помощью fable
в R, но я не могу найти достойного результата, и мне интересно, что я делаю не так.
Вот мой код с использованием примера набора данных, который можно загрузить:
library(tsibble)
library(fable)
library(dplyr)
library(lubridate)
download.file("https://srv-file7.gofile.io/download/9yo0cg/so_data.csv", destfile = "so_data.csv", method = "wget")
csv = read.csv("so_data.csv") %>%
mutate(time = ymd_hms(time)) %>%
as_tsibble(index = time)
# Take a look
csv %>% summary
csv %>% autoplot
Это временной ряд: как видите, он довольно регулярный, с хорошей ежедневной периодичностью. Попробуем смоделировать его, используя настройки по умолчанию для нескольких моделей:
csv %>%
model(
ets = ETS(value),
arima = ARIMA(value),
snaive = SNAIVE(value)
) %>%
forecast(h = "1 week") %>%
autoplot(csv)
Все они эффектно проваливаются:
Мое ограниченное понимание этого процесса явно ошибочно, и значения по умолчанию бесполезны в этой ситуации. Как бы я ни пытался их настроить, но, к сожалению, ничего лучше у меня не получилось. В любом случае, поскольку я новичок в этой области, я не понимаю, связано ли это с:
- я не устанавливаю правильные параметры по умолчанию (я должен глубже погрузиться в
fable
"s справочник) - ограниченные данные, которые у меня есть (короткие временные ряды, всего несколько месяцев)
- подход не подходит для быстро меняющихся данных (ежедневные и еженедельные повторяющиеся модели)
- проблемы в моем коде
1 ответ
Ваши 15-минутные данные о частоте показывают несколько сезонных закономерностей. Эти модели дают прогнозы низкого качества, поскольку они не предназначены для отражения этих закономерностей (и поэтому это не так).
Ваш код выглядит хорошо, и (визуально) данные, кажется, имеют четкие закономерности, которые должна уловить соответствующая модель.
В настоящее время существуют две более сложные модели, которые работают с баснями, которые должны улавливать несколько сезонных закономерностей, чтобы дать вам лучшие прогнозы. Они есть:
- БЫСТРЫЙ (https://github.com/tidyverts/fasster)
- Пророк (https://github.com/facebook/prophet) с интерфейсом fable ( https://github.com/mitchelloharawild/fable.prophet/)