Time Series Analysis
Анализ временных рядов изучает упорядоченные по времени данные, выявляя тренды, сезонность и аномалии, а также прогнозируя будущие значения с помощью статистических и глубоких моделей.
Анализ временных рядов — это изучение точек данных, записанных в хронологическом порядке, обычно через равные интервалы, например почасовых показаний датчиков, ежедневных продаж или числа автомобилей, которые камера наблюдения за дорожным движением видит каждую минуту. От других видов аналитики данных его отличает то, что порядок несёт информацию: каждое наблюдение зависит от предыдущих, поэтому перемешивание данных разрушает интересующие закономерности. Основные цели — описывать ряд через тренд и сезонные закономерности, прогнозировать будущие значения, выявлять аномалии и классифицировать ряды целиком, например сердечные ритмы на ЭКГ.
Тренд, сезонность и стационарность#
Большинство рядов объединяют несколько компонентов. Тренд — это долгосрочное направление изменений, сезонность — закономерность, повторяющаяся через фиксированный период, например день, неделю или год, циклы — более длительные подъёмы и спады без фиксированного периода, а остаток — то, что остаётся. Декомпозиция разделяет эти компоненты: классический вариант использует скользящие средние, а более надёжный — STL, сезонно-трендовую декомпозицию на основе локальной регрессии, опубликованную Робертом Кливлендом и его коллегами в 1990 году.
Автокорреляция — корреляция ряда с его сдвинутой копией — показывает эту структуру: высокое значение при лаге 24 в почасовых данных означает, что каждый час похож на тот же час предыдущего дня. Многие статистические модели также предполагают стационарность: среднее значение, дисперсия и автокорреляция не меняются со временем. Расширенный тест Дики — Фуллера проверяет распространённую форму нестационарности, а дифференцирование, при котором моделируют изменение от одного шага к следующему вместо самого значения, устраняет тренд.
В этом примере моделируются четыре недели почасовых подсчётов автомобилей с суточным циклом, медленным восходящим трендом и шумом, измеряется автокорреляция и строятся два прогноза на последний день:
import numpy as np
import pandas as pd
# Four weeks of hourly vehicle counts: a daily cycle, a slow upward trend, and noise
rng = np.random.default_rng(0)
hours = pd.date_range("2026-03-01", periods=24 * 28, freq="h")
daily_cycle = 40 + 30 * np.sin(2 * np.pi * (hours.hour - 9) / 24)
counts = pd.Series(daily_cycle + 0.02 * np.arange(len(hours)) + rng.normal(0, 5, len(hours)), index=hours)
# Autocorrelation: how strongly each count resembles the count 1, 12, and 24 hours earlier
for lag in [1, 12, 24]:
print(f"Autocorrelation at lag {lag}: {counts.autocorr(lag):.2f}")
# Forecast the final day from the 27 days before it
history, actual = counts[:-24], counts[-24:].to_numpy()
naive = np.full(24, history.iloc[-1]) # repeat the last observed count
seasonal_naive = history.iloc[-24:].to_numpy() # repeat the same hour of the previous day
print(f"Naive MAE: {np.abs(actual - naive).mean():.1f} vehicles")
print(f"Seasonal naive MAE: {np.abs(actual - seasonal_naive).mean():.1f} vehicles")Автокорреляция составляет 0,92 при лаге 1, −0,89 при лаге 12 — дневной пик приходится на ночной минимум, — и 0,95 при лаге 24. Повторение последнего наблюдавшегося количества даёт в среднем ошибку 24,5 автомобиля в час, а повторение данных предыдущего дня — 5,6. Поэтому сезонный наивный прогноз служит базовым уровнем, который должна превзойти прогнозирующая модель.
Методы прогнозирования#
Статистические методы по-прежнему эффективны, особенно для коротких рядов. Экспоненциальное сглаживание, разработанное Чарльзом Холтом и Питером Винтерсом примерно в 1960 году, придаёт больший вес недавним наблюдениям и учитывает тренд и сезонность. Модели ARIMA, получившие известность благодаря Джорджу Боксу и Гвилиму Дженкинсу в 1970 году, объединяют авторегрессию, дифференцирование и скользящие средние прошлых ошибок. Prophet от Meta моделирует тренд, сезонность и влияние праздников для бизнес-данных.
Модели машинного обучения рассматривают прогнозирование как предиктивное моделирование на основе предыдущих значений и календарных признаков. Деревья с градиентным бустингом, такие как LightGBM, лидировали в соревновании M5 2020 года по прогнозированию продаж Walmart. А в соревновании M4 2018 года, в котором участвовали 100 000 рядов, победила гибридная модель Славека Смила, объединявшая экспоненциальное сглаживание и рекуррентную нейронную сеть. Среди моделей глубокого обучения — LSTM, модели пространства состояний и трансформеры, а предварительно обученные фундаментальные модели, такие как Chronos от Amazon и TimesFM от Google, прогнозируют новые ряды без дополнительного обучения. Фильтры Калмана решают смежную задачу оценки скрытого состояния, например положения объекта, по зашумлённым измерениям в реальном времени.
При оценке нужно учитывать время. Случайная перекрёстная проверка позволяет модели заглянуть в будущее — это разновидность утечки данных. Поэтому прогнозы проверяют с помощью оценки со скользящим началом: модель обучается на данных до точки отсечения, прогнозирует следующий за ней период, а затем проверка повторяется по мере сдвига точки отсечения вперёд.
Временные ряды, полученные из видео#
Компьютерное зрение преобразует видео во временные ряды. Подсчёт объектов на камере наблюдения за дорожным движением даёт число автомобилей в минуту, отслеживание объектов — координаты и скорости для каждого кадра, а камеры в магазинах — число посетителей за час. Затем к этим рядам применяют те же методы: прогнозируют часы пик или потребность в персонале и выполняют обнаружение аномалий, отмечая резкое падение трафика после аварии. В решении Analytics от Ultralytics код analytics_type="line" отслеживает объекты с помощью модели YOLO26 и каждые 30 кадров строит график числа объектов в поле зрения. Для видео с частотой 30 кадров в секунду это примерно один раз в секунду, поэтому во время воспроизведения видеопоток камеры преобразуется во временной ряд подсчётов.
Анализ временных рядов пересекается с моделированием последовательностей в обработке естественного языка, где текст упорядочен по позициям и не имеет интервала выборки. Подсчёты и скорости, извлечённые из видео моделями обнаружения, отслеживания и понимания видео, занимают гораздо меньше места, чем сами кадры, поэтому их можно хранить годами и сравнивать между камерами.










