ARIMA

Материал из Энциклопедия интернет-маркетинга MarketWiki

ARIMA (AutoRegressive Integrated Moving Average, авторегрессионное интегрированное скользящее среднее) - это статистическая модель для анализа и прогнозирования временных рядов, которая описывает будущие значения показателя через его предыдущие значения (авторегрессия), накопленные ошибки прогноза (скользящее среднее) и процедуру приведения ряда к стационарному виду (интегрирование).

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

Модель была разработана Джорджем Боксом и Гвилимом Дженкинсом в 1970 году (методология Бокса-Дженкинса) и долгое время использовалась в экономике и финансах. К 2026 году ARIMA остаётся стандартным инструментом в Python (библиотека statsmodels), R и специализированных BI-системах, хотя для сложных нелинейных рядов уступает место нейросетевым моделям (Prophet, LSTM).

Суть

[править]

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

Что такое ARIMA

[править]

ARIMA - это класс статистических моделей для анализа и прогнозирования временных рядов. Название модели расшифровывается как «авторегрессионное интегрированное скользящее среднее» и описывает её три ключевых компонента, обозначаемых параметрами (p, d, q):

Компонент Параметр Суть Что делает
AR (p) - Авторегрессия p (количество «шагов» назад) «Вчера влияет на сегодня» Учитывает зависимость текущего значения от предыдущих. Например, расходы в прошлую пятницу влияют на расходы в эту
I (d) - Интегрирование d (количество разностей) «Делаем ряд стационарным» Сглаживает ряд, убирая общий тренд. Вместо предсказания «огромной суммы» модель предсказывает «изменение от вчерашнего дня»
MA (q) - Скользящее среднее q (размер «окна» ошибок) «Сглаживаем случайные шоки» Учитывает ошибки прошлых прогнозов. Помогает модели не реагировать на случайные всплески (например, разовый визит блогера)

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

Как работает ARIMA

[править]

Принцип работы модели

[править]
  • A - Авторегрессия (AutoRegression) - компонент, который отвечает за использование прошлых значений ряда для предсказания будущих. Значение параметра p (lag order) задаёт, сколько предыдущих точек наблюдения влияют на текущее значение. Например, для ежедневных расходов в Яндекс Директе модель будет сравнивать траты среды с тем, что было в предыдущие 3, 5 или 7 дней.
  • I - Интегрирование (Integrated) - компонент, отвечающий за приведение ряда к стационарному виду, то есть такому, где нет явно выраженного тренда. Параметр d задаёт, сколько раз нужно взять разность между соседними значениями, чтобы убрать тренд и сделать ряд стабильным по дисперсии. Если взять разность первого порядка (d=1), это означает, что модель предсказывает не саму сумму, а то, «насколько вырастут расходы по сравнению со вчерашним днём», что гораздо стабильнее.
  • MA - Скользящее среднее (Moving Average) - компонент, который отвечает за зависимость текущего значения от ошибок прогноза, сделанных в прошлых перидах. Параметр q (order) задаёт, как далеко назад модель «заглядывает», чтобы скорректировать случайный шум или реакцию на разовые события.

Применение в интернет-маркетинге

[править]

1. Прогнозирование рекламного бюджета и медиапланирование

[править]

ARIMA анализирует исторические данные по дням или неделям из рекламных кабинетов (Яндекс Директ, VK Реклама, Telegram Ads) и предсказывает будущие расходы. Это помогает:

  • Заранее планировать бюджет на месяц, учитывая инерцию аукциона и сезонность.
  • Обосновывать перед руководством или клиентом не одну цифру, а «коридор» бюджета (доверительный интервал).
  • Автоматизировать расчёты для 50+ клиентов через Python-скрипты.

2. Прогнозирование трафика и конверсий

[править]

ARIMA строит «ожидаемый» график посещаемости сайта. Если реальный трафик резко выходит за границы доверительного интервала, система сигнализирует о проблеме (например, упала форма регистрации или резко выросла цена клика). Это простейший способ мониторинга аномалий без сложных алгоритмов.

3. Планирование продаж и спроса (e-commerce)

[править]

Модель учитывает прошлые всплески спроса и «сглаживает» случайные шумы (например, разовый закуп оптовика), выдавая реалистичный прогноз, сколько товара нужно закупить на склад к следующему месяцу. Крупные ритейлеры (Ozon, Wildberries) используют сезонную вариацию SARIMA, чтобы отличить реальный рост спроса на новый бренд от обычного сезонного колебания.

4. Проверка гипотез в SEO

[править]

Так как SEO - процесс инертный, ARIMA помогает создать «контрольную группу» - временной ряд, отвечающий на вопрос: «что было бы с трафиком, если бы мы ничего не меняли?». Сценарий: после внедрения изменений на сайт модель строит прогноз. Если реальный график идёт выше прогнозного интервала ARIMA - значит, SEO-стратегия работает, а рост не связан просто с общим подъёмом рынка.

5. Оценка сквозной эффективности (Media Mix Modeling)

[править]

ARIMA используется для MMM, чтобы понять, какой канал (Telegram Ads, посевы у блогеров, SEO) даёт отложенный эффект. Модель видит связь между всплеском активности сегодня и ростом брендовых запросов через 1-2 недели - когда прямая атрибуция (последний клик) уже не работает.

Пример расчёта прогноза бюджета в Яндекс Директ

[править]

Шаг 1: Подготовка данных

[править]

Выгружаются ежедневные расходы из кабинета Яндекс Директа за последние 2 года. Данные должны быть в виде непрерывного временного ряда без пропусков.

Проблема: в данных есть «выбросы» (11 ноября, Чёрная пятница) или технические сбои (кампания стояла 2 дня из-за нехватки средств на балансе).

Решение: перед расчётом эти аномальные значения заменяются средними значениями за соседние периоды (линейная интерполяция), чтобы модель не приняла их за новый тренд. Также разделяются потоки: Поиск и РСЯ обучаются на отдельных моделях.

Шаг 2: Настройка параметров (p, d, q)

[править]

Для Яндекс Директа в РФ подбираются следующие настройки:

Параметр Значение Обоснование
p (авторегрессия) 7 В Директе сильно выражен «эффект дня недели» (будни активнее выходных). Параметр 7 заставляет модель смотреть на то, что было ровно неделю назад
d (интегрирование) 1 Рынок РФ волатилен. Взятие первой разности помогает убрать общий тренд инфляции аукциона
q (скользящее среднее) 1 Помогает учесть случайные колебания (запуск конкурента, временный сбой в модерации)

Шаг 3: Расчёт

[править]

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

ARIMA выдаёт не просто одну линию, а «коридор» (доверительный интервал):

  • Ожидаемый бюджет (например, 1 500 000 руб. в месяц)
  • Нижняя граница (1 300 000 руб.)
  • Верхняя граница (1 800 000 руб.)

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

Шаг 4: Пример кода на Python

[править]
from statsmodels.tsa.arima.model import ARIMA
import pandas as pd
import matplotlib.pyplot as plt

# Загрузка данных: дата и расход из Яндекс Директа (cost)
df = pd.read_csv('yandex_direct_data.csv', index_col='Date', parse_dates=True)

# Обучение модели (p=7, d=1, q=1)
model = ARIMA(df['cost'], order=(7, 1, 1))
model_fit = model.fit()

# Прогноз на 30 дней вперед с доверительным интервалом
forecast = model_fit.forecast(steps=30)
forecast_ci = model_fit.get_forecast(steps=30).conf_int()

print(f'Прогноз бюджета на месяц: {forecast.sum():.2f} руб.')

Преимущества

[править]
  • Объективное обоснование бюджета - прогноз основан на математике, а не на интуиции.
  • Учёт инерции рынка - модель видит автокорреляцию (сегодняшний день похож на вчерашний), что критично для SEO и PPC.
  • Работа с «грязными» данными - компоненты ARIMA позволяют отсекать структурные сдвиги и шоки.
  • Доверительный интервал - модель даёт вилку, а не одну цифру, что защищает маркетолога.
  • Автоматизация - при большом количестве проектов расчёт легко автоматизируется на Python.

Недостатки

[править]
  • Плохо справляется с «чёрными лебедями» - резкие внезапные события (новости, санкции) рушат прогноз, так как ARIMA опирается на историю.
  • Требует «чистых» данных - даже минимальный пропуск в датах или выброс (например, отключение кампании на день) может исказить прогноз.
  • Минимум данных для обучения - для надёжного прогноза нужно минимум 90-180 дней ежедневных данных.
  • Линейность - ARIMA предполагает линейные зависимости, а в реальности тренды могут быть нелинейными.
  • Сложность интерпретации - настройка параметров (p, d, q) требует понимания статистики, а не просто «кнопки запуска».

Где используется

[править]

ARIMA применяется в:

  • PPC-менеджменте - прогноз бюджета и стоимости лида в Яндекс Директе, VK, Telegram Ads.
  • SEO-аналитике - создание «контрольной группы» для оценки эффекта оптимизации.
  • E-commerce - прогноз спроса на товары, управление остатками.
  • SMM и инфлюенс-маркетинге - оценка отложенного эффекта интеграций с блогерами.
  • Финансовом планировании - прогноз выручки и LTV новых клиентов.

Подготовка данных для прогноза бюджета в Яндекс Директ

[править]

Для качественного прогноза ARIMA необходима тщательная подготовка данных:

Требование Описание
Глубина истории Минимум 90 дней для краткосрочного прогноза, но лучше от 1 года для учёта сезонности
Гранулярность Данные по дням - непрерывный временной ряд без пропусков
Очистка от аномалий Резкие спады (1 января) или взлёты (8 марта, Чёрная пятница) заменяются средними значениями за соседние периоды
Учёт технических сбоев Если кампания стояла из-за нехватки средств, «нули» заполняются средними
Разделение каналов Поиск и РСЯ не смешиваются - у них разная механика аукциона
Логарифмирование Если разброс трат сильно растёт (масштабирование бизнеса), применяется логарифмирование для стабилизации дисперсии
Проверка на стационарность Тест Дики-Фуллера показывает необходимость параметра d (обычно d=1)

Проверка готовности: если на графике автокорреляции (ACF) видны чёткие пики на 7, 14 и 21 днях - есть выраженная недельная сезонность. В этом случае обычную ARIMA стоит заменить на SARIMA (Seasonal ARIMA), которая явно моделирует сезонную компоненту.

Часто задаваемые вопросы

[править]

Что такое ARIMA простыми словами?

[править]

ARIMA - это математическая формула, которая анализирует историю и предсказывает будущее. Например, модель смотрит, сколько средств тратилось на рекламу в прошлые пятницы, и прогнозирует: «скорее всего, в следующую пятницу потребуется примерно столько же» (с учётом того, что рынок растёт).

Как ARIMA помогает в контекстной рекламе?

[править]

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

Чем ARIMA отличается от Prophet?

[править]

ARIMA - классическая статистическая модель, работает хорошо на стабильных данных с чёткой сезонностью. Prophet - более современная модель от Meta, устойчивее к пропускам в данных и выбросам. В российских реалиях 2026 года Prophet часто удобнее из-за «грязных» данных после ухода западных платформ.

Какие данные нужны для прогноза в Яндекс Директе?

[править]

Ежедневные расходы за последние 90-365 дней. Данные должны быть очищены от выбросов (пиковые дни распродаж, технические сбои), а аномальные значения заменены средними или интерполированы.

Как проверить, что модель работает точно?

[править]

Разделить данные на две части: на исторических «тренировать» модель, а на свежих «тестировать» (например, по данным 3 месяцев предсказать 4-й). Сравнить прогноз с фактом. Если расхождение в пределах 10-15 процентов - модель работает.

Связанные термины

[править]