Временные ряды существуют столько же, сколько и само время. Поэтому существует множество методов, позволяющих не только анализировать данные, но и предсказывать, что будет дальше. В статье вы можете найти краткий обзор методов, с которыми я столкнулся на практике.
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)
Их архитектура достаточно сложна, поэтому заслуживает отдельной статьи. Итак, я просто добавил ссылки на источники дополнительной информации.
Заключение
И последнее, но не менее важное: перед использованием всех описанных методов настоятельно рекомендуется понять, является ли рассматриваемый временной ряд предсказуемым или это просто случайная последовательность значений. Принцип «мусор на входе, мусор на выходе» чрезвычайно важен в любой задаче, связанной с данными.
Если вам понравилась эта статья, подпишитесь на меня, чтобы поддержать мою работу, и ознакомьтесь с моей новой статьей Как бороться с выбросами во временных рядах на ту же тему.