Понимание байесовского моделирования комплекса маркетинга: Глубокое погружение в предыдущие спецификации

Автор: Дмитрий Иванов [Команда P9X]

~8 минут чтения

Моделирование байесовского маркетингового микса получает всё больше внимания

Фото от Павела Червински на Unsplash.

Моделирование маркетингового микса с использованием байесовских методов привлекает всё больше внимания, особенно с недавним выпуском инструментов с открытым исходным кодом, таких как LightweightMMM (Google) или PyMC Marketing (PyMC Labs). Хотя эти фреймворки упрощают сложности байесовского моделирования, всё ещё крайне важно для пользователя понимать фундаментальные байесовские концепции и уметь интерпретировать спецификацию модели.

В этой статье я использую Google’s LightweightMMM в качестве практического примера и показываю интуицию и смысл предварительных спецификаций этого фреймворка. Я демонстрирую моделирование предварительных образцов с помощью Python и библиотеки scipy.

Данные

Я использую данные, предоставленные Robyn под лицензией MIT.

Набор данных состоит из 208 недель выручки (с 2015–11–23 по 2019–11–11) и включает:

  • 5 каналов расходов на медиа: tv_S, ooh_S, print_S, VK_S, search_S;
  • 2 канала медиа, которые также имеют информацию об экспозиции (Impression, Clicks): VK_I, search_clicks_P;
  • Органические медиа без расходов: newsletter;
  • Контрольные переменные: events, holidays, продажи конкурентов (competitor_sales_B).

Спецификация модели LightweightMMM

Спецификация модели LightweightMMM определяется следующим образом:

Эта спецификация представляет аддитивную линейную регрессионную модель, которая объясняет значение отклика (целевой переменной) в определённый момент времени t.

Давайте разберём каждый компонент в уравнении:

  • α: этот компонент представляет точку пересечения или базовое значение отклика. Это ожидаемое значение отклика, когда все остальные факторы равны нулю.
  • trend: этот компонент отражает увеличивающийся или уменьшающийся тренд отклика с течением времени.
  • seasonality: этот компонент представляет периодические колебания отклика.
  • media_channels: этот компонент учитывает влияние каналов медиа (телевидение, радио, онлайн-реклама) на отклик.
  • other_factors: этот компонент включает любые другие переменные, которые влияют на отклик, такие как погода, экономические показатели или активность конкурентов.

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

Перехват

Предварительная спецификация перехвата определена как полунормальное распределение со стандартным отклонением 2. Полунормальное распределение — это непрерывное распределение вероятностей, которое напоминает нормальное распределение, но ограничено только положительными значениями. Распределение характеризуется одним параметром — стандартным отклонением (масштабом). Полунормальное распределение подразумевает, что перехват может принимать только положительные значения.

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

from scipy import stats

scale = 2
halfnormal_dist = stats.halfnorm(scale=scale)
samples = halfnormal_dist.rvs(size=1000)

plt.figure(figsize=(20, 6))
sns.histplot(samples, bins=50, kde=False, stat='density', alpha=0.5)
sns.lineplot(x=np.linspace(0, 6, 100), 
          y=halfnormal_dist.pdf(np.linspace(0, 6, 100)), color='r')

plt.title(f"Half-Normal Distribution with scale={scale}")
plt.xlabel('x')
plt.ylabel('P(X=x)')
plt.show()

Тренд

Спецификация тренда определена как степенная зависимость между временем t и значением тренда. Параметр μ представляет амплитуду или величину тренда, а k контролирует крутизну или кривизну тренда.

Параметр μ извлекается из нормального распределения со средним значением 0 и стандартным отклонением 1. Это означает, что μ следует стандартному нормальному распределению, центрированному вокруг 0, со стандартным отклонением 1. Нормальное распределение допускает положительные и отрицательные значения μ, представляющие восходящие и нисходящие тренды соответственно.

Параметр k извлекается из равномерного распределения между 0,5 и 1,5. Равномерное распределение гарантирует, что k принимает значения, которые приводят к разумной и значимой кривизне тренда.

Сезонность

Каждый компонент γ извлекается из нормального распределения со средним значением 0 и стандартным отклонением 1.

Комбинируя косинусную и синусоидальную функции с разными γ, можно смоделировать циклические закономерности для учёта сезонности, присутствующей в данных. Косинусная и синусоидальная функции представляют колебательное поведение, наблюдаемое в течение периода в 52 единицы (недели).

Другие факторы (контрольные переменные)

Каждый коэффициент фактора λ извлекается из нормального распределения со средним значением 0 и стандартным отклонением 1, что означает, что λ может принимать положительные или отрицательные значения, представляющие направление и величину влияния каждого фактора на результат.

Каналы медиа

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

Трансформации медиа

В этих уравнениях мы моделируем поведение каналов медиа с помощью серии преобразований, таких как adstock и насыщение Хилла.

Моделирование маркетингового микса с использованием PyMC3

Переменная каналы медиа представляет преобразованные каналы медиа в момент времени t. Она получается путём применения преобразования к исходному значению канала медиа x. Преобразование Хилла контролируется параметрами K — точкой половинного насыщения (0 < k ≤ 1) и формой S, контролирующей крутизну кривой (s > 0).

Переменная x ∗​ представляет значение преобразованных каналов медиа в момент времени t после прохождения преобразования adstock. Оно рассчитывается путём сложения текущего исходного значения канала медиа с произведением предыдущего преобразованного значения и параметра затухания adstock λ.

Параметры K и S следуют гамма-распределениям с формой и масштабными параметрами, равными 1, а λ следует бета-распределению с формой параметров 2 и 1.

Заключение

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

Полный код можно скачать из моего репозитория на Github.

Спасибо за чтение!