Основы временных рядов

Сложность: Средний Время чтения: 12 минут

Что делает временные ряды особенными

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

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

2 4 6 8 10 12 120 140 160 180

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

Тренды: долгосрочное направление

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

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

Сезонность: повторяющиеся паттерны

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

5 10 15 20 80 100 120 140 160

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

Сезонность отличается от цикла. Сезонные паттерны имеют фиксированный, известный период (12 месяцев, 7 дней, 4 квартала). Циклы -- более долгосрочные колебания без фиксированного периода, как деловые циклы длительностью от трёх до десяти лет. Оба являются реальными паттернами, но сезонность более предсказуема.

Скользящие средние: сглаживание шума

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

Скользящие средние невероятно популярны благодаря простоте и эффективности. Финансовые аналитики используют их для выявления трендов цен акций. Эпидемиологи используют 7-дневные скользящие средние для сглаживания ежедневных подсчётов случаев. Операционные команды используют их для обнаружения изменений в трафике. Размер окна (сколько точек усредняете) контролирует степень сглаживания: более широкое окно даёт более гладкую линию, но медленнее реагирует на реальные изменения.

Пример

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

Автокорреляция: как сегодня связано со вчера

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

Автокорреляция важна по двум причинам. Во-первых, она раскрывает скрытые паттерны. Если ряд показывает высокую автокорреляцию при лаге 12 в месячных данных, это убедительно указывает на годовой сезонный паттерн. Во-вторых, она -- критический параметр для выбора правильной модели прогнозирования. Многие модели временных рядов, такие как ARIMA, строятся непосредственно на автокорреляционной структуре данных.

Графт автокорреляции (также называемый коррелограммой) показывает корреляцию при каждом лаге. Значимые пики на этом графике указывают, какие прошлые моменты содержат полезную информацию для прогноза. Если значимы только первые несколько лагов и они быстро затухают, ряд имеет кратковременную память. Если значимы многие лаги -- дальнедействующую зависимость.

Прогнозирование: взгляд в будущее

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

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

Ключевой вывод

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