Еще больше про SEO, сайты и маркетинг
+секретные методики в нашем телеграм канале!
Сезонность в поисковых запросах — это не просто ежемесячные пики и провалы. Это сложная смесь повторяемых циклов, праздничных всплесков и медленного тренда в фоне. Понять эту картину важно для прогноза спроса, планирования маркетинга и обнаружения аномалий. В этой статье я прохожу по основным подходам к машинному анализу сезонности и объясняю, когда какой метод лучше применять.
Я буду говорить о практических приёмах: от классического разложения рядов до современных гибридных моделей. По ходу отмечу слабые места каждого метода и дам конкретные советы по подготовке данных и валидации результатов.
Первый инструмент в арсенале — разложение временного ряда на тренд, сезонность и остаток. Здесь распространены аддитивная и мультипликативная модели, а также алгоритм STL, который гибко подстраивается под изменяющуюся сезонность. Разложение хорошо подходит для интерпретации: видно, где именно и почему растёт или падает интерес пользователей.
Для прогнозирования часто используют SARIMA и модели семейства ETS. SARIMA удобен, если сезонность регулярна и ряд стационарен после разностной трансформации. ETS эффективен при явных трендах и различных типах сезонности, но уступает в гибкости при сложных календарных эффектах.
Когда в данных одновременно присутствуют годовые, недельные и суточные циклы, на помощь приходят TBATS и BATS. Они специально созданы для множества периодов и хорошо справляются с нецелочисленными частотами. Другой популярный вариант — добавление фурье-признаков, то есть синусоидальных базисов, которые позволяют линейным моделям захватывать сложную периодичность.
Prophet от Meta выиграл популярность благодаря простоте использования: он автоматически учитывает праздничные эффекты, меняющиеся тренды и позволяет включать регрессоры. Prophet удобен для быстрого прототипа, но при очень шумных или редких всплесках может требоваться донастройка.
Деревья и градиентный бустинг (XGBoost, LightGBM) не «видят» сезонность сами по себе, но при правильной подготовке признаков они даёт отличные прогнозы. Важно создать лаги, скользящие средние, фурье-компоненты и категориальные признаки календаря. Такие модели устойчивы к пропускам и легко масштабируются.
Нейросети, включая LSTM и трансформеры, подходят для сложных нелинейных зависимостей и длинных контекстов. Они требуют больше данных и аккуратной регуляризации. Трансформеры упрощают работу с внешними регрессорами и хорошо ловят редкие всплески, если в тренировочной выборке есть похожие примеры.
Качественные признаки важнее выбора модели. Список базовых шагов приведён ниже. Каждый пункт реально меняет точность прогноза, особенно на сезонных задачах.
Не забывайте кодировать циклические признаки (синус, косинус), иначе модель будет считать декабрь и январь далекими точками пространства.
Традиционная кросс-валидация здесь не пригодна. Применяйте временную валидацию с шагом скользящего окна, также известную как rolling-origin. Она симулирует реальное обновление модели по мере прихода новых данных.
Выбор метрики зависит от задачи: RMSE чувствителен к большим ошибкам, MAE даёт более устойчивую оценку, MAPE удобен, если важны относительные ошибки, но плохо работает при нулях. Для счётных данных имеет смысл смотреть Poisson deviance.
Простые инструменты помогают понять структуру ряда: автокорреляционная функция (ACF) показывает повторяющиеся лаги, спектральный анализ и периодограмма выявляют доминирующие частоты. В сложных случаях эффективны вейвлеты, они дают локальное во времени представление о периодичности.
После обнаружения сезонности стоит визуально проверить корреляции с календарными событиями и внешними факторами. Это помогает выбрать правильную модель и избежать переобучения на случайных совпадениях.
| Метод | Подходит для | Мультисезонность | Интерпретируемость | Вычислительная нагрузка |
|---|---|---|---|---|
| STL / разложение | Анализ и визуализация | Ограниченно | Высокая | Низкая |
| SARIMA / ETS | Регулярные сезонные ряды | Один период | Высокая | Средняя |
| TBATS | Множество периодов | Хорошо | Средняя | Высокая |
| Prophet | Быстрая настройка, праздники | Умеренно | Высокая | Низкая/средняя |
| XGBoost / LightGBM | Сложные регрессоры | Через признаки | Средняя | Средняя |
| LSTM / Transformer | Нелинейные зависимости, длинный контекст | Хорошо | Низкая | Высокая |
Начните с визуализации и простых моделей, потом постепенно переходите к более сложным, если базовый подход даёт систематические ошибки. Всегда проверяйте модель на отложенных временных интервалах и учитывайте праздники и маркетинговые активности отдельно.
В продакшне полезна ансамблевость: сочетание статистической модели для тренда и ML-модели для деталей часто даёт лучший результат. Наконец, мониторьте стабильность сезонных эффектов, потому что пользовательское поведение со временем меняется.