Анализ временных рядов

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

При анализе временных рядов возникают две основных задачи:

  • Выявление структуры (определение закономерностей, построение модели)
  • Прогнозирование (предсказание будущих значений на основе текущих)

В рамках прогнозирования так же возникают вопросы о точности прогноза и максимальном горизонте.

Составляющие временного ряда

Большинство интересных на практике временных рядов содержат две составляющие:

  • Систематическую
  • Случайную (шум, ошибку)

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

Систематическая составляющая, в свою очередь, обычно содержит

  • Тренд – апериодическая компонента
  • Сезонность – периодическая компонента.

Пример: продажи, авиаперевозки.

Сезонность в свою очередь обычно бывает

  • Мультипликативной – сезонная составляющая линейно зависит от тренда
  • Аддитивной – сезонная составляющая не зависит от тренда

Конечно, возможны варианты нелинейной сезонности, но они редки.

Анализ тренда

В общем случае, не существует “автоматического” способа обнаружения тренда. Однако, если тренд монотонный (устойчиво возрастающий или убывающий), то возможен анализ регрессионными методами.

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

Сглаживание всегда подразумевает некоторое локальное усреднение.

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

Реже, могут использоваться более сложные методы сглаживания, такие как метод наименьших квадратов.

После удаления случайной компоненты, если ряд монотонный, часто используется линейная или нелинейная регрессия.

Анализ сезонности

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

Периодическая зависимость может быть формально определена как корреляционная зависимость между каждым i-м элементом ряда и (i-k)-м элементом ряда. k обычно называют лагом, или сдвигом.

Найти k можно поиском минимума автокорреляционной функции. Для дискретного случая, автокорреляционная функция определяется как

\[R(k) = \sum_i y_i y_{i-k}\]

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

Другой метод выделения периодичности состоит в исследовании частной (частичной) автокорреляционной функции. В частной АКФ устраняется зависимость между промежуточными отсчётами (внутри лага), т.е. при вычислении частной АКФ с лагом k, из неё удаляются влияние автокорреляций с лагами \(0<l<k\).

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

ARIMA

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

Методология ARIMA, так же известная как метод Бокса-Дженкинса, позволяет анализировать временные ряды с неизвестной моделью процесса.

ARIMA – интегрированная модель авторегрессии и скользящего среднего. Эта модель имеет три типа параметров:

  • \(p\) – параметры авторегрессии
  • \(d\) – порядок разности
  • \(q\) – параметры скользящего среднего.

Процесс авторегрессии в общем виде можно записать как

\[x_t = ξ + ε_t + \sum_{i=1}^p φ_i x_{t-i}\]

здесь \(ξ\) – константа, \(ε\) – случайное воздействие, \(φ_i\) – параметры авторегрессии. Таким образом каждый отсчёт рассматривается как сумма случайного воздействия в текущий момент и линейной комбинации предыдущих отсчётов.

Процесс скользящего среднего в общем виде можно записать как

\[x_t = μ + ε_t - \sum_{j=1}^q θ_j ε_{t-j},\]

т.е. текущий отсчёт ряда рассматривается как сумма случайной компоненты в данный момент и линейной комбинации случайных компонент в предыдущие моменты времени.

В этом изложении модель работает только для стационарного ряда. Но ряд можно сделать стационарным, вычисляя разности, пока ряд не станет стационарным. Число необходимых разностей определяется параметром \(d\). Для нестационарного ряда модель ARIMA тогда записывается в виде

\[(Δ^d x)_t = ξ + \sum_{i=1}^p φ_i (Δ^d x)_{t-i} + \sum_{j=1}^q θ_j ε_{t-j} + ε_t,\]

где \(Δ^d\) – оператор разности временного ряда порядка \(d\) (последовательное взятие \(d\) раз разностей первого порядка)

Параметры d, p, q в общем случае не могут быть определены автоматически. Определение параметра \(d\) требует анализа автокорреляционных свойств временного ряда. Параметры p и q выбираются минимальные из тех, которые хорошо предсказывают поведение ряда. На практике, p и q редко бывают больше 2.

Общие рекомендации для выбора параметров на основе вида АКФ и ЧАКФ:

  1. p=1, q=0. АКФ экспоненциально убывает, ЧАКФ имеет резко выделяющееся значение для лага 1, и не имеет корреляций на других лагах.
  2. p=2, q=0. АКФ периодическая или экспоненциально убывает. ЧАКФ имеет резко выделяющиеся значения на лагах 1, 2, на других лагах корреляций нет.
  3. q=1, p=0. АКФ имеет резко выделяющееся значение на лаге 1, ЧАКФ экспоненциально убывает.
  4. q=2, p=0. АКФ имеет резко выделяющиеся значения на лагах 1, 2. ЧАКФ периодическая или экспоненциально убывает.
  5. p=1, q=1. АКФ экспоненциально убывает с лага 1, ЧАКФ экспоненциально убывает с лага 1.

Для определения параметров \(φ_i\) и \(θ_i\), применяются методы оптимизации, конкретно, минимизируется функция ошибки. Полученные оценки параметров используются для прогноза. Поскольку параметры модели рассчитаны в терминах разности порядка \(d\), для получения прогноза в терминах исходного ряда, необходимо произвести обратную операцию – проинтегрировать разности.

В ARIMA возможно добавить сезонную составляющую, введя для определённого лага сезонные параметры (ps, ds, qs). Обычно это поход, дающий значимо лучшие результаты, чем прямое увеличение d, p, q. Такая модель называется SARIMA (сезонная ARIMA).

Экспоненциальное сглаживание

Экспоненциальное сглаживание – другой популярный метод прогнозирования временных рядов.

Примитивно просто подойти к анализу временных рядов можно, рассматривая временной ряд как последовательность значений \[x_t = b(t) + ε_t,\] где \(b(t)\) – некоторая медленно меняющаяся со временем функция, а \(ε\) – случайная компонента.

Интуитивно понятный способ выделения \(b(t)\) состоит в том, чтобы использовать сглаживание скользящим средним, в котором последним наблюдениям приписываются большие веса, чем предпоследним и т.д. При простом экспоненциальном сглаживании, старым наблюдениям приписываются экспоненциально убывающие веса, но в отличие от скользящего среднего, учитываются все предшествующие наблюдения ряда:

\[s_t = α x_t + (1-α) s_{t-1},\]

где \(s_t\) – сглаженный ряд. Когда эта формула применяется рекурсивно, каждое новое сглаженное значение является взвешенным средним текущего наблюдения и сглаженного ряда. Это новое сглаженное значение также является и прогнозом.

Понятно, что результат сглаживания зависит от параметра \(α\). При \(α=1\), прошлые наблюдения игнорируются, при \(α=0\), игнорируется новое наблюдение.

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

Следует отметить, что для коротких рядов, значительное влияние может так же оказывать начальное сглаженное значение \(s_0\). Его выбор тоже может осуществляться оптимизационными методами.

Учёт сезонности и тренда

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

Учёт сезонности может осуществляться как

\[π_t = s_t + i_{t-p}\]

или

\[π_t = s_t i_{t-p}\]

соответственно для аддитивной и мультипликативной сезонной составляющей, где \(s_t\) – простое экспоненциально сглаженное значение, \(π_t\) – прогноз, \(i_{t-p}\) – сглаженный сезонный компонент.

Сезонный компонент независимо оценивается простым экспоненциальным сглаживанием следующим образом:

\[i_t = i_{t-p} + δ(1-α)e_t\] или \[i_t = i_{t-p} + δ(1-α)e_t/s_t\] для аддитивной и мультипликативной моделей соответственно, где \(e_t\) – ошибка в момент \(t\) (отличие прогноза от фактического значения).

Параметр \(δ\) лежит где-то между \(0\) и \(1\). Если \(δ = 0\), то сезонность не меняется между периодами. Если \(δ=1\), то сезонность меняется “максимально”.

Аналогично сезонности, можно учитывать тренд: экспоненциально сгладить разность 1 порядка временного ряда с отдельным параметром и добавить к прогнозу.

В общем случае, с учётом тренда и сезонности, модель определяется:

\[\begin{align} s_0 & = x_0 \\ s_t & = α \frac{x_t}{c_{t-L}} + (1-α)(s_{t-1}+b_{t-1}) \\ b_t & = β(s_t - s_{t-1})+(1-β)b_{t-1} \\ c_t & = γ\frac{x_t}{s_t}+(1-γ)c_{t-L} \end{align}\] для мультипликативной сезонности и \[\begin{align} s_0 & = x_0 \\ s_t & = α (x_t-c_{t-L}) + (1-α)(s_{t-1}+b_{t-1}) \\ b_t & = β(s_t - s_{t-1})+(1-β)b_{t-1} \\ c_t & = γ(x_t-s_{t-1}-b_{t-1})+(1-γ)c_{t-L} \end{align}\]

Сезонная декомпозиция (Census I)

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

Стандартный приём, используемый для такой декомпозиции – метод Census I.

В методе Census I временной ряд рассматривается как комбинация 4 компонентов:

  • Сезонная компонента \(s_t\)
  • Тренд \(t_t\)
  • Циклическая компонента \(c_t\)
  • Случайная компонента \(i_t\)

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

Обычно, тренд и циклическую компоненту объединяют в \(tc_t\)

Конкретные взаимосвязи между компонентами могут иметь самый разный вид, но основные варианты это аддитивно: \[x_t = tc_t + s_t + i_t\] или мультипликативно: \[x_t = tc_t s_t i_t\]

Сам алгоритм работает следующим образом:

  1. Ряд сглаживается скользящим средним с периодом сезонности. В результате сезонная компонента практически исключается.
  2. Из исходного ряда исключается сглаженный ряд (вычитанием или делением). Это даёт сезонную компоненту.
  3. Вычисляется средняя сезонная составляющая на основе сезонной компоненты по всему ряду.
  4. Из исходного ряда вычитается средняя сезонная компонента, что даёт сезонно-корректированный ряд.
  5. Тренд-циклическая компонента оценивается применением к ряду с сезонной поправкой взвешенного скользящего среднего с линейно убывающими к краям весами.
  6. Случайная компонента получается вычитанием из сезонно-корректированного ряда оценки тренд-циклической компоненты.

Можно отметить, что метод в основе своей эвристический. Существует развитие идей, используемых в методе Census I, включающее значительно большее число значительно более специфических эвристик, известное как X-11 или Census II.

Спектральный анализ

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

В основе спектрального анализа лежит преобразование Фурье, переводящее периодическую функцию из области времени в область частот.

Использование спектрального анализа может помочь выделить характерные периоды в каком-то массиве данных, которые могут быть не слишком очевидны. Поскольку такие методы как SARIMA или экспоненциальное сглаживание предполагают, что периодичность известна a priori, то анализ при помощи ПФ позволит более обоснованно пользоваться соответствующими моделями.