Временные ряды существуют столько же, сколько и само время. Поэтому существует множество методов, позволяющих не только анализировать данные, но и предсказывать, что будет дальше. В статье вы можете найти краткий обзор методов, с которыми я столкнулся на практике.

1. Быстро и грязно

Во-первых, есть довольно простые методы, основанные на идее, что следующая точка сильно связана с конкретными наблюдениями в прошлом. Среди них модели скользящей средней и авторегрессии. Эти методы могут работать как автономный метод и как метод извлечения тренда перед применением чего-либо еще к остаткам.

Скользящая средняя (MA)

MA вычисляет прогнозируемое значение как средневзвешенное значение предыдущих N наблюдений. В простейшем варианте это среднее арифметическое (когда все веса одинаковы, а их сумма равна 1).

Модель авторегрессии (AR)

AR представляет значения временных рядов как линейную комбинацию N предыдущих наблюдений того же временного ряда. Как и любая регрессия, она также включает коэффициенты, относящиеся к каждому наблюдению и систематической ошибке.

2. Классика

Вместе AR и MA привели к появлению таких известных методов, как авторегрессионная скользящая средняя, ​​авторегрессивная интегрированная скользящая средняя и сезонная авторегрессионная интегрированная скользящая средняя. Все они имеют дело со стационарными временными рядами.

Короче говоря, стационарностьозначает, что параметры распределения наблюдений (например, среднее значение и дисперсия) не меняются со временем.

И поскольку это требование является слишком строгим, существуют разные методы для разных типов предварительной обработки данных, которые позволяют приблизить данные к стационарности.

Авторегрессионная скользящая средняя (ARMA)

ARMA — это простейшая версия подхода, которая просто объединяет два предыдущих метода.

Можно видеть, что он включает в себя модель AR как есть и дополнительно извлекает значительные колебания из ошибок, которые AR не может уловить, но может MA.

Таким образом, это пример аддитивных декомпозиционных моделей.

Декомпозиционные модели широко используются в анализе временных рядов. Они представляют временной ряд как комбинацию (аддитивную или мультипликативную) следующих факторов: тренд (или основная тенденция), цикличность, сезонность и непредсказуемый шум.

Авторегрессионное интегрированное скользящее среднее (ARIMA)

Эта версия ARMA работает с нестационарными временными рядами, которые можно сделать стационарными, используя не сами временные ряды, а различия между их наблюдениями.

Сезонная авторегрессионная интегрированная скользящая средняя

SARIMA или Seasonal ARIMA включает в себя еще одно улучшение. Он может работать с сезонными данными благодаря включению в предыдущую формулу специальных слагаемых. Они позволяют извлекать сезонную информацию, относящуюся к определенной фиксированной продолжительности сезона.

и т. д.

Существуют еще более продвинутые методы, такие как TBATS (тригонометрический анализ, преобразование Бокса-Кокса, ошибки ARMA, трендовые и сезонные компоненты), которые позволяют учитывать изменение сезонности. Но я не буду углубляться в этом направлении.

3. Машинное обучение

Когда началась эра больших данных, рассмотренные выше модели стали слишком медленными. К счастью, методы машинного обучения могут решить эту проблему. На самом деле, любую задачу прогнозирования временных рядов можно рассматривать как стандартную задачу регрессии. Временные ряды просто нуждаются в дополнительной предварительной обработке данных.

Набор данных может быть сформирован следующим образом:

Он также может включать дополнительные сгенерированные функции, которые помогают модели идентифицировать сезонность и другие специфические характеристики временного ряда.

Будьте осторожны при использовании этого метода, потому что строки в наборе данных не являются независимыми. Вот почему необходимо предотвращать утечку при разделении данных на обучающие и тестовые наборы.

4. Глубокое обучение

И когда глубокое обучение стало чрезвычайно популярным, появились новые методы, которые применяют глубокое обучение к задаче прогнозирования временных рядов.

Наиболее естественным выбором здесь являются сети LSTM, которые позволяют сохранять некоторую информацию о предыдущих наблюдениях в так называемой «памяти».

Но в то же время встречались и другие модели, такие как:

  • DeepAR (методология получения точных вероятностных прогнозов, основанная на обучении модели авторегрессионной рекуррентной нейронной сети на большом количестве связанных временных рядов)
  • N-BEATS, в котором в качестве базового строительного блока используется многоуровневая полносвязная сеть.
  • Преобразователь временного слияния (TFT)

Их архитектура достаточно сложна, поэтому заслуживает отдельной статьи. Итак, я просто добавил ссылки на источники дополнительной информации.

Заключение

И последнее, но не менее важное: перед использованием всех описанных методов настоятельно рекомендуется понять, является ли рассматриваемый временной ряд предсказуемым или это просто случайная последовательность значений. Принцип «мусор на входе, мусор на выходе» чрезвычайно важен в любой задаче, связанной с данными.

Если вам понравилась эта статья, подпишитесь на меня, чтобы поддержать мою работу, и ознакомьтесь с моей новой статьей Как бороться с выбросами во временных рядах на ту же тему.