Временной ряд
англ. Time series (времено́й ряд) — это последовательность точек данных, проиндексированных (или перечисленных, или отображённых на графике) в хронологическом порядке. Наиболее часто временной ряд представляет собой последовательность, полученную в последовательные равноотстоящие моменты времени, то есть это последовательность дискретных данных. Примеры временных рядов включают высоты океанских приливов, количество солнечных пятен, а также ежедневное значение закрытия промышленного индекса Доу — Джонса.
Временные ряды часто изображаются с помощью графика изменений (также называемого временным линейным графиком). Временные ряды применяются в статистике, обработке сигналов, распознавании образов, эконометрике, математических финансах, прогнозировании погоды, предсказании землетрясений, электроэнцефалографии, системах управления, астрономии, инженерии связи, а также практически во всех областях прикладных наук и инженерии, в которых выполняются временные измерения.
Анализ временных рядов — это совокупность методов анализа данных временных рядов с целью выявления значимых статистических характеристик и других особенностей данных. Прогнозирование временных рядов заключается в использовании модели для предсказания будущих значений на основе ранее наблюдаемых данных. В большинстве случаев данные временных рядов моделируются посредством стохастических процессов. Хотя регрессионный анализ часто используется для поиска связей между двумя или более различными временными рядами, термин «анализ временных рядов» используется, как правило, для анализа взаимосвязей между отдельными временными точками внутри одного ряда.
Данные временных рядов имеют естественную временную упорядоченность, что отличает анализ временных рядов от панельных исследований без естественного порядка наблюдений (например, объяснение заработной платы людей через уровень их образования, когда данные респондентов можно ввести в любом порядке). Кроме того, анализ временных рядов отличается от пространственного анализа, где наблюдения обычно соответствуют географическим координатам (например, цены на жильё в зависимости от расположения). Стохастическая модель для временного ряда, как правило, отражает тот факт, что наблюдения, близкие по времени, более коррелированы, чем удалённые. Также во временных рядах используется естественное направленное течение времени: значения за определённый период считаются производными из прошлых значений, а не будущих (см. обратимость во времени).
Анализ временных рядов применим как к вещественным, непрерывным данным, так и к дискретным числовым, либо к дискретным символьным данным (например, последовательностям символов — букв и слов в английском языке[1]).
Методы анализа
Методы анализа временных рядов делятся на два класса: методы частотной области и временной области. К первым относятся спектральный анализ и вейвлет-анализ; ко вторым — анализ автокорреляции и кросс-корреляции. Во временной области корреляционный анализ может выполняться с помощью масштабированной корреляции, уменьшая необходимость перехода к частотному представлению.
Также техники анализа временных рядов можно разделить на параметрические и непараметрические методы. Параметрические подходы исходят из предположения, что #стационарный стохастический процесс описывается небольшой совокупностью параметров (например, авторегрессионной или моделью скользящего среднего). Задача таких подходов — оценить параметры модели, описывающей процесс. Непараметрические методы, напротив, непосредственно оценивают ковариацию или спектр процесса без предположения структурной формы.
Методы анализа также классифицируются как линейные и нелинейные, а также унитивариантные и мультвариантные.
Панельные данные
Временной ряд — частный случай панельных данных. Панельные данные — более широкое понятие, означающее многомерный набор данных, в то время как временной ряд — одномерная панель, как и срезовые данные. Отличие определяется тем, что делает запись уникальной: если это только временное поле, значит, перед нами временной ряд; если требуется дополнительный идентификатор (например, номер студента, код страны, тикер акции), то речь о панельных данных; если уникальность обусловлена только не-временным идентификатором, то это срезовые данные.
Анализ
Существует несколько типов задач и методов анализа временных рядов, подходящих для различных целей.
В статистике, эконометрике, количественных финансах, сейсмологии, метеорологии, геофизике главная задача анализа временных рядов — прогнозирование. В обработке сигналов, автоматике и инженерии связи — обнаружение сигналов. Кроме того, анализ временных рядов применяется в добыче данных, распознавании образов, машинном обучении — для кластеризации[2],[3][4] классификации[5], поиску по содержимому[6], выявлению аномалий и прогнозированию[7].
Простейшим подходом к изучению регулярных временных рядов является визуальный — при помощи линейного графика. На таком графике обычно отображаются, например, данные по смертности от туберкулёза в США[8], годовые изменения и относительные изменения по годам. Суммарная смертность снижалась каждый год до середины 1980-х, после чего иногда наблюдались незначительные (в относительном выражении значительные, но не абсолютные) увеличения.
Исследование аналитиков показало две основные проблемы исследовательского анализа временных рядов: выявление формы интересных закономерностей и объяснение этих закономерностей[9]. Визуальные инструменты, представляющие данные временного ряда в виде тепловых матриц, помогают преодолеть эти сложности.
Этот подход основывается на гармоническом анализе и фильтрации сигналов в частотной области с помощью преобразования Фурье, оценивания спектральной плотности. Значительный вклад в методы военного времени внесли математики Норберт Винер, инженеры Рудольф Калман, Деннис Габор и другие — для фильтрации сигналов от шума и прогнозирования значений сигнала.
Эквивалентные методы могут применяться во временной области (например, калмановский фильтр; см. фильтрация (обработка сигналов) и сглаживание).
Другие методы:
- Анализ автокорреляции для исследования сериальной зависимости
- спектральный анализ для поиска циклических явлений, не связанных с сезонностью (например, 11-летний цикл солнечной активности)[10][11]
- Декомпозиция на компоненты: тренд, сезонность, медленные и быстрые изменения, циклы и нерегулярности (см. оценка тренда, декомпозиция временного ряда)
Аппроксимация кривой[12][13] — построение кривой или функции, наиболее точно отражающей изменчивость данных[14], иногда под ограничениями[15].[16] Аппроксимация включает интерполяцию (точное восстановление значений между точками)[17][18] и сглаживание — построение сглаженной функции[19].[20] Смежная задача — регрессионный анализ[21], которому больше интересны вопросы статистического вывода (например, степень неопределённости кривой, аппроксимирующей наблюдаемые шумные данные). Аппроксимирующие кривые используются как для визуализации данных[22], так и для оценки значений функции при отсутствии данных[23], а также суммирования взаимосвязей между несколькими переменными[24]. Экстраполяция — использование кривой вне диапазона наблюдаемых данных[25] — сопряжена с неопределённостью и может отражать скорее специфику метода, чем свойства самих данных[26].
Экстраполяция — оценка значений переменной за пределами исходного диапазона наблюдений. Она, в отличие от интерполяции, сопряжена с большей неопределённостью и риском получения неверных результатов.
Как правило, задача аппроксимации функции состоит в выборе функции из определённого класса, максимально близко воспроизводящей целевую функцию. Выделяют две основные группы задач: 1) когда целевая функция известна (теория аппроксимации), и 2) когда функция не задана явно, а дана совокупность точек (временной ряд). В последнем случае применяются методы интерполяции, экстраполяции, регрессии, аппроксимации кривой. Если значения лежат в конечном множестве, задача сводится к классификации. Для временных рядов важно также построение аппроксимации данных "на лету" (в режиме онлайн), чтобы поддерживать запросы к временным рядам с гарантированными оценками ошибки[27].
Во многих случаях задачи регрессии, классификации, аппроксимация пригодности объединяются в статистической теории обучения как задачи обучения с учителем.
В статистике прогнозирование рассматривается как часть статистического вывода. Прогнозирование временных рядов — передача знаний о части совокупности на всю совокупность или на другие, часто будущие, моменты времени. Методы включают:
- Полные статистические модели для стохастического моделирования и генерации альтернативных траекторий ряда
- Простые и сложные модели для оценки вероятного значения ряда в ближайшем будущем (прогноз)
- Прогнозирование обычно реализуется с помощью статистических/программных средств (Julia, Python, R, SAS, SPSS и др.)
- Для масштабных временных рядов используются, например, Apache Spark и библиотека Spark-TS[28]
Отнесение паттерна временного ряда к одной из категорий, например, распознавание слова по ряду движений рук (язык жестов).
Разделение временного ряда на последовательность сегментов, каждый с характерными свойствами. Например, звуковой сигнал конференции можно разметить по участникам. Цель — выявить границы сегментов и описать динамические свойства каждого сегмента (используются методы обнаружения изменений, марковские модели с прыжками и др.).
Временные ряды можно кластеризовать, однако при анализе подпоследовательностей требуется особая осторожность[29].[4] Выделяют:
- кластеризацию целых временных рядов (несколько рядов — найти кластеры),
- кластеризацию подпоследовательностей (один ряд, разбиение на окна),
- кластеризацию временных точек.
Кластеризация подпоследовательностей часто даёт случайные кластеры, обусловленные особенностями извлечения признаков при разбивке окон[30]. Было показано, что центры кластеров (усреднённые ряды) сводятся к синусоидальным паттернам, не содержащим информации о структуре исходных данных.
Модели
Модели временных рядов могут принимать разные формы, описывая различные стохастические процессы. Классическими считаются авторегрессионная модель (AR), интегрированная (I) и модель скользящего среднего (MA) — все они линейно зависят от предыдущих точек[31]. Их комбинации: ARMA, ARIMA, а обобщением служит ARFIMA. К важным модификациям относится модель с переменными во времени коэффициентами (TVAR), допускающая эволюцию динамики системы. Мультивариантные расширения (VAR, VARMA, VARIMA и др.) применяются для векторных данных; если присутствует экзогенный ряд — к аббревиатуре добавляют X (напр., ARMAX).
Модели TVAR (time-varying autoregressive) полезны при анализе нестационарных временных рядов, чьи динамические свойства со временем меняются сложным образом (не обязательно по классическим паттернам тренда или сезонности). Здесь коэффициенты авторегрессии зависят от времени (задаются базисами), что позволяет моделировать структурные сдвиги, режимные переходы, эволюции динамики. Подходы распространены в обработке сигналов[32][33], экономике[34], финансах[35], мониторинге надежности[36][37][38], телекоммуникациях[39][40], нейронауках[41], науках о климате[42], гидрологии[43]. Оценка параметров TVAR осуществляется методами сглаживания ядрами[44], рекурсивного метода наименьших квадратов[45], калмановской фильтрации[46].
Нелинейная зависимость значения ряда от предыдущих данных важна для описания, в частности, хаотических временных рядов. Иногда предсказания по нелинейным моделям оказываются существенно лучше, чем по линейным (например, нелинейная модель авторегрессии с экзогенными переменными). Подробно вопрос рассматривается у Канца и Шрайбера[47], Абарбанеля[48].
К другим типам нелинейных моделей относятся подходы к моделированию изменения дисперсии ряда (гетероскедастичность). Такие модели (ARCH, GARCH, TARCH, EGARCH, FIGARCH, CGARCH и др.) позволяют описывать или предсказывать изменчивость ряда на основе недавних измерений. В альтернативных схемах разброс может рассматриваться как результат дополнительного внутреннего стохастического процесса (двойной стохастический процесс).
Современные нефункциональные ("модель-свободные") анализы часто используют различные вейвлет-преобразования и их композиции с нейронными сетями[49]. Мультимасштабные (мультирезолюционные) методы разбивают ряд для выявления зависимостей на разных масштабах (см. марковская мультифрактальная смена режимов для моделирования волатильности).
Скрытая марковская модель — вероятностная модель, в которой анализируется процесс с неявными (скрытыми) состояниями; такой подход широко используется, например, в распознавании речи.
Реализации многих этих моделей представлены в Python-пакете sktime.
Обозначения
Для формального задания временного ряда X, проиндексированного натуральными числами, используется запись:
- X = (X₁, X₂, ...)
Другой вариант:
- Y = (Y_t : t ∈ T), где T — индексное множество.
Теория строится, как правило, на двух классах условий:
Эргодичность более сильное условие, чем стационарность. Стационарность бывает строгой и по второму порядку (широком смысле). Модели и приложения разрабатываются в обеих парадигмах.
Анализ временных рядов может проводиться также для сезонно-стационарных и нестационарных рядов. В случае изменяющихся по времени амплитуд спектральных компонент используют временнó-частотный анализ (см. временнó-частотное представление)[50].
Типовые методы анализа данных временных рядов:
- Вычисление автокорреляционной функции и функции спектральной плотности (в том числе кросс-корреляции)
- Масштабированная корреляция[51]
- Быстрое преобразование Фурье (для анализа во частотной области)
- Кластерный анализ[4]
- Исследование структуры спектра (дискретный, непрерывный или смешанный)
- Применение цифровых фильтров для удаления шума
- Анализ главных компонент (или функции эмпирического ортогонального разложения)
- Сингулярный спектральный анализ
- «Структурные» модели:
- Общие модели состояний
- Модели скрытых компонентов
- Машинное обучение:
- Искусственная нейронная сеть
- Метод опорных векторов
- Нечёткая логика
- Гауссовский процесс
- Генетическое программирование
- Генетическое программирование выражений
- Скрытая марковская модель
- Эволюционное программирование выражений
- Теория массового обслуживания
- Контрольные карты
- Диаграммы Шухарта
- Суммарный контроль (CUSUM)
- Скользящее среднее EWMA
- Анализ детрендированных флуктуаций
- Нелинейные смешанные модели
- Динамическая временная калибровка
- Динамические байесовские сети
- Временнó-частотное представление:
- Быстрое преобразование Фурье
- Непрерывное вейвлет-преобразование
- Краткосрочное преобразование Фурье
- Вейвлеты (chirplet transform, дробное преобразование Фурье)
- Хаотический анализ:
- Кореляционная размерность
- Рекуррентные диаграммы
- Квантификация повторяемости
- Показатель Ляпунова
- Кодирование энтропии
К числу характеристик временных рядов (для классификации и регрессии) относятся[52]:
- Унитивариантные линейные характеристики
- Моменты (математика)
- Накопленная энергия
- Автокорреляция
- Параметры спектра (чайлдовые полосы, HRF)
- Момент Хьорта
- Параметры БПФ
- Параметры авторегрессии
- Критерий Манна — Кендалла
- Унитивариантные нелинейные характеристики
- Характеристики суммы корреляций
- Кореляционная размерность
- Корреляционная энтропия
- Аппроксимативная энтропия[53]
- Выборочная энтропия
- Вейвлет-энтропия, энтропия Фурье
- Энтропия Реньи, дисперсионная энтропия
- Маргинальная предсказуемость
- Индекс динамического сходства
- Дразнители Ляпунова, методы перестановок, локальные потоки
- Другие одновариантные характеристики
- Алгоритмическая сложность
- Оценка сложности по Колмогорову
- Состояния скрытых марковских моделей
- Подпись грубого пути[54]
- Потеря повторяемости, показатели нестационарности
- Двухвариантные линейные характеристики
- Максимальная линейная кросс-корреляция
- Линейная когерентность
- Двухвариантные нелинейные характеристики
- Нелинейная взаимозависимость
- Динамическая синхронизация фаз
- Меры синхронизации фаз, захвата фаз
- Меры сходства[55]
- Кросс-корреляция
- Dynamic time warping
- Скрытая марковская модель
- Редакционное расстояние
- Полная корреляция
- Оценка Ньюи — Уэста
- Преобразование Прайса — Уинстена
- Метрики в метрических пространствах (расстояния Минковского, Махаланобиса)
- Метрики стандартного отклонения (глобальные, локальные, скользящие)
- Интерпретация как стохастический ряд (корреляция Пирсона, ранговая корреляция Спирмена)
- Интерпретация как функция плотности вероятности (тест Колмогорова — Смирнова, критерий Крамера — фон Мизеса)
Визуализация
Визуализация временных рядов возможна двумя классами графиков:
- Наложенные графики: все ряды на одном поле (линейный график, перекрёстные графики, slope graph и др.)
- Раздельные графики: каждый ряд отдельно, но по одной оси времени (horizon graphs, reduced line chart, silhouette graph и др.)[56]
Примечания
Литература
- De Gooijer, Jan G.; Hyndman, Rob J. (2006). “25 years of time series forecasting”. International Journal of Forecasting. Twenty Five Years of Forecasting. 22 (3): 443—473. CiteSeerX 10.1.1.154.9227. DOI:10.1016/j.ijforecast.2006.01.001. S2CID 14996235.
- Box G. E. P., Jenkins G. M. Time Series Analysis: Forecasting and Control. Holden-Day, Oakland, California, 1976.
- Дербин Дж., Купман С. J. Time Series Analysis by State Space Methods. Oxford University Press, 2001.
- Gershenfeld N. The Nature of Mathematical Modeling. Cambridge University Press, 2000.
- Hamilton J. D. Time Series Analysis. Princeton University Press, 1994.
- Priestley M. B. Spectral Analysis and Time Series. Academic Press, 1981.
- Shasha D. High Performance Discovery in Time Series. Springer, 2004.
- Shumway R. H., Stoffer D. S. Time Series Analysis and its Applications: With R Examples. 4-е изд. Springer, 2017.
- Weigend A. S., Gershenfeld N. A. (ред.) Time Series Prediction: Forecasting the Future and Understanding the Past. Addison-Wesley, 1994.
- Wiener, Norbert. Extrapolation, Interpolation, and Smoothing of Stationary Time Series: With Engineering Applications. — MIT Press, 1949. — ISBN 978-0-262-25719-0.
- Woodward W. A., Gray H. L., Elliott A. C. Applied Time Series Analysis. CRC Press, 2012.
- Auffarth, Ben. Machine Learning for Time-Series with Python: Forecast, predict, and detect anomalies with state-of-the-art machine learning methods. — 1st. — Packt Publishing, 2021. — ISBN 978-1-80181-962-6.
Ссылки
- Введение в анализ временных рядов (Engineering Statistics Handbook) — практический вводный курс.