Эта статья является продолжением моей статьи От бизнес-аналитика до специалиста по данным, в которой я обсуждал темы и ресурсы, которые можно изучить, чтобы стать специалистом по данным начального уровня, не имея никакого опыта в этой области. . В этой статье я возьму одну из тем Прогнозирование временных рядов и немного углублюсь в ее компоненты. Почему прогнозирование временных рядов? Большинство компаний, в которые я подавал заявку, просили TSF на собеседовании, моя текущая работа предполагает использование большого количества TSF и, конечно же, это довольно интересно. Моя цель в этой статье - не сделать вас экспертом по прогнозированию временных рядов (ни одна статья не может этого сделать), а дать вам широкий обзор всей области, чтобы вы получили структуру или знания. Давай прыгнем

Я видел будущее, и оно очень похоже на настоящее, только дольше.

Келог Альбран, Прибыль

Что такое прогнозирование временных рядов и почему это важно?

Прежде всего, что такое временной ряд? Это просто упорядоченный во времени набор точек данных. Используя эти точки, мы пытаемся спрогнозировать значения будущих точек, предполагая, что будущие тенденции будут такими же, как исторические тенденции, что вкратце и есть TSF. Это помогает нам получить некоторое представление о будущих событиях и получить определенную уверенность в них, чтобы мы были лучше подготовлены. Прекрасным примером являются математики в Индии, пытающиеся спрогнозировать, когда достигнет пика заболеваемости Covid'19, чтобы система здравоохранения была лучше укомплектован всеми принадлежностями и т. д.

Основные компоненты временного ряда

  1. Уровень - это среднее значение ряда.
  2. Тренд - увеличение или уменьшение значений в серии
  3. Сезонность - тенденции, повторяющиеся в течение определенного периода времени. Пример: - Каждое Рождество начинается рост продаж определенных товаров.
  4. Шум или остаточный сигнал - необъяснимый компонент временного ряда, который модель не может определить.

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

Статистические методы прогнозирования временных рядов

  1. Наивный метод - самый простой из всех методов в TSF, логика - следующая точка во временном ряду такая же, как и последняя наблюдаемая точка.

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

3. Скользящее среднее - это обновленная версия предыдущего метода. Вместо того, чтобы брать все предыдущие значения, вы выбираете скользящее окно (скажем, n), следующее значение является средним из всех предыдущих n значений, конечно, это предполагает, что важны только недавние значения, в отличие от предыдущего метода.

4. Взвешенное скользящее среднее - это обновленная версия предыдущего метода, в котором вы присваиваете разные веса разным значениям в скользящем окне. Логика? Предположим, вам нужно спрогнозировать продажи на следующий месяц, и у вас есть 365 значений за предыдущий год (по 1 на каждый день), разве вы не хотите придавать больший вес продажам в прошлом месяце декабре по сравнению с начальным месяцем в январе?

5. Единое экспоненциальное сглаживание. Как и раньше, это обновленная версия взвешенного скользящего среднего, за исключением того, что теперь мы берем все значения в серии. Но как мы будем назначать веса всем значениям, мы будем использовать α и 1 − α. Здесь α или альфа называется коэффициентом сглаживания. Таким образом, в основном следующее значение - это средневзвешенное значение двух предыдущих значений.

Что делает α? Думайте об этом как о коэффициенте затухания: чем выше значение α, тем быстрее метод забывает предыдущие значения.

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

7. Тройное экспоненциальное сглаживание, также известный как метод Холта-Винтерса - теперь мы добавляем еще один уровень и последний компонент - сезонность. Идея состоит в том, чтобы применить сглаживание ко всем трем компонентам временного ряда.

Общие модели прогнозирования временных рядов

  1. Авторегрессия или AR. Предпосылка модели, как и все ранее обсужденные методы, - следующее значение во временном ряду, зависящее от предыдущих значений. Мы строим уравнение линейной регрессии, используя предыдущие значения, а затем подбираем новые значения, чтобы сделать прогноз.
  2. Скользящие средние или МА - не путайте это с методом скользящих средних, который обсуждался ранее. Таким образом, в отличие от модели авторегрессии, которая использует прошлые значения, модель MA использует прошлые ошибки для составления прогноза.
  3. ARIMA. Как вы уже догадались, ARIMA представляет собой смесь двух предыдущих моделей и расшифровывается как Auto Regressive Integrated Moving Average. Этот метод использует как прошлые значения, так и прошлые ошибки временных рядов для прогнозирования будущих значений. Модель ARIMA всегда обозначается как ARIMA (p, d, q). Здесь p обозначает количество членов AR, q обозначает количество членов MA, а d обозначает разность. В чем разница? Он преобразует временной ряд в другой, где каждое значение представляет собой разницу между двумя предыдущими значениями. Это сделано для того, чтобы временной ряд стал стационарным. Что такое стационарность? Временной ряд называется стационарным, если его статистические компоненты, такие как среднее значение, дисперсия и т. Д., Являются постоянными в течение определенного периода времени.
  4. SARIMA - это сокращение от сезонного авторегрессионного интегрированного скользящего среднего, SARIMA - это расширение ARIMA, которое поддерживает прогнозирование временных рядов, в котором сезонность является компонентом.
  5. SARIMAX - Здесь X означает внешние факторы. Что такое экзогенные факторы? Все предыдущие модели, которые мы обсуждали, используются для одномерного прогнозирования временных рядов, что означает, что ваш временной ряд имеет только одну переменную, которая является самим временным рядом. Но что, если мы пытаемся спрогнозировать продажи в следующем месяце и хотим включить дополнительные переменные, такие как география, маркетинговый бюджет и т. Д., Это внешние переменные, которые являются независимыми, и для их включения мы используем SARIMAX
  6. VARMAX. Что, если переменные, которые мы используем, зависят от временного ряда, допустим, вы пытаетесь предсказать предложение, используя спрос, но мы также знаем, что обе переменные взаимозависимы друг от друга, поэтому мы будем использовать VARMAX

Дополнительные ресурсы и статьи

Большинство ссылок на временные ряды вы можете найти здесь в моей предыдущей статье, дополнительные ссылки указаны ниже.

  1. Https://grisha.org/blog/2016/02/16/triple-exponential-smoothing-forecasting-part-ii/
  2. Https://www.machinelearningplus.com/time-series/arima-model-time-series-forecasting-python/
  3. Https://www.kaggle.com/raenish/cheatsheet-date-helpers

Резюме

Я намеренно не рассматривал какие-либо модели, которые используют нейронные сети или глубокое обучение для прогнозирования, такие как LSTM и т. Д., По двум причинам: -

1- Они выходят за рамки данной статьи

2- Нет смысла переходить к сложным алгоритмам без прочной базы

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