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

Во-первых, что такое данные временного ряда?

Данные временного ряда — это наблюдения, которые представляют собой упорядоченную последовательность через равные промежутки времени. часы, дни, месяцы, годы и т. д. Они обычно индексируются на указанном интервале времени. Таким образом, первая задача перед началом анализа временных рядов — убедиться, что фрейм данных проиндексирован по признаку времени, а также убедиться, что это тип данных даты и времени. Самый простой пример объекта временного ряда в pandas — это тип данных Series, индексированный по метке времени.

Приложения анализа временных рядов охватывают многие области и не ограничиваются следующим:

  1. Анализ переписи.
  2. Прогноз продаж.
  3. Анализ фондового рынка
  4. Проекция доходности.
  5. Прогноз рабочей нагрузки.
  6. Распознавание образов.
  7. Обработка сигналов и т. д.

С данными временных рядов становится легко анализировать ряды и делать будущие прогнозы о событии. Они визуализируются с помощью линейного графика, поэтому библиотека matplotlib и другие методы в python пригодятся всякий раз, когда вы работаете с временными рядами.

Временные ряды состоят из трех основных компонентов:

  1. Тренды/Импульс: это долгосрочное наблюдение за увеличением или уменьшением данных.
  2. Сезонность: как и в названии, это вариации, наблюдаемые в определенное время года. Это происходит в течение более короткого периода времени. Например. ежегодно, ежемесячно, в определенные праздничные периоды и т. д.
  3. Шум/цикл: эти циклы рассматриваются как шум, поскольку они не следуют определенной схеме.

Некоторые термины временных рядов.

  1. ARIMA: авторегрессионное интегрированное скользящее среднее; это модель, используемая для прогнозирования будущей стоимости временных рядов с использованием прошлых значений.
  2. Автокорреляция: это корреляция данных временных рядов в какой-то момент с их собственной копией в прошлом. Когда ряд имеет положительную автокорреляцию, мы говорим, что он «следует за трендом» и «возврат к среднему», если он имеет отрицательную автокорреляцию.
  3. Автокорреляционная функция: график, показывающий автокорреляцию всего набора данных. Любые значащие ненулевые значения означают, что ряд может быть спрогнозирован из прошлого.
  4. Белый шум: это ряд со средним значением, постоянным во времени, дисперсией, постоянной во времени, и нулевой автокорреляцией при всех задержках. Следовательно, белый шум — это некоррелированные данные, которые нельзя использовать для прогнозирования будущих наблюдений на основе прошлых значений.

Стационарность

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

Чтобы проверить стационарность в наборе данных, мы используем тест Дики Фуллера, он будет генерировать p-значения, которые позволят нам либо отклонить, либо не отклонить нулевую гипотезу об отсутствии стационарности. Кроме того, мы можем визуализировать данные через;

График функции автокорреляции: «ACF» полезен для определения того, является ли ряд стационарным или нестационарным. АКФ стационарного временного ряда быстро упадет до нуля, а нестационарного ряда убывает медленно. Кроме того, r1 нестационарных рядов часто положителен и велик.

Ряд легко моделировать, если он является стационарным, потому что это приведет к изменчивости модели. Это связано с тем, что моделирование включает в себя оценку некоторого набора параметров, и если процесс не является стационарным, параметр каждый раз будет другим. Таким образом, мы будем менее уверены в правильности значения параметра модели.

График автокорреляции, показывающий нестационарный ряд.

Способы обработки нестационарных данных.

  1. Разность первого порядка: включает вычисление различий между последовательными наблюдениями ряда. Это может помочь стабилизировать среднее значение временного ряда за счет удаления изменений уровня временного ряда, а также за счет удаления трендов и сезонности.

Y’t = Yt — Yt-1, это относится к разности первого порядка между Y в момент времени t и его значением запаздывания в момент времени t-1.

NB: Одной разности может быть достаточно, чтобы преобразовать нестационарные данные в стационарные.

  1. Использование моделей случайных блужданий.
  2. Разность второго порядка.
  3. Сезонная разница: это также может быть вычислено, то есть изменение между одним и тем же периодом в два разных сезона. Например. предполагая, что «m» - это сезон. Ут = Ут — Ут-1.
  4. Использование тестов единичного корня: это тесты статистических гипотез на стационарность, они помогают определить, требуется ли разность, чтобы сделать временной ряд стационарным. Это правильные тесты на стационарность. Наличие единичного корня во временном ряду указывает на нестационарность, а отсутствие присутствующих единичных корней соответствует количеству разностей, которые потребуются, чтобы сделать его стационарным. Augmented dickey fuller (ADF) — один из тестов, относящихся к тестам на единичный корень. Он проверяет нулевую гипотезу о том, что альфа = 1, то есть наличие единичного корня. Таким образом, значение p должно быть меньше 0,05, чтобы отвергнуть нулевую гипотезу, и поэтому оно называется стационарным. Тесты ADF могут быть реализованы через adfuller() из статистических моделей.

Здесь p-значение больше 0,05, что подразумевает нестационарный временной ряд. На приведенном ниже графике я применю этот тест единичного корня к смещенному временному ряду. Конечно, я ожидаю, что он будет меньше 0,05.

В результате p-значение сдвинутого временного ряда производства электроэнергии меньше 0,05 и, следовательно, стационарно.

Два графика ниже показывают нестационарный график временного ряда производства электроэнергии и стационарный график после его смещения.

Разложение временного ряда.

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

Прогнозирование

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

Пример анализа временных рядов с использованием набора данных о производстве электроэнергии.

Чтобы выполнить это упражнение, вы можете использовать эту записную книжку Kaggle.

Набор данных содержит наблюдения за производством электроэнергии с 1985 по 2018 год. Давайте посмотрим на набор данных.

Прежде чем мы начнем анализ, мы собираемся убедиться, что переменная «ДАТА» имеет тип даты и времени, а также использовать ее в качестве индекса фрейма данных.

Часть начальной предварительной обработки, которую вы можете выполнить для своего временного ряда, состоит в том, чтобы проверить ряд на наличие выбросов с помощью boxplot matplotlib, проверить распределение с помощью графика гистограммы, а также заполнить любые отсутствующие значения по мере необходимости.