ARIMA
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 процентов - модель работает.
