О чём эта серия?
Добро пожаловать ко второй части моей серии статей о моделировании маркетингового микса (МММ), практическое руководство, которое поможет вам освоить МММ. В этой серии мы рассмотрим ключевые темы, такие как обучение модели, валидация, калибровка и оптимизация бюджета, используя мощный пакет python pymc-marketing. Независимо от того, новичок ли вы в МММ или хотите отточить свои навыки, эта серия предоставит вам практические инструменты и идеи для улучшения ваших маркетинговых стратегий.
Если вы пропустили первую часть, ознакомьтесь с ней здесь:
Освоение моделирования маркетингового микса на Python
Введение
Во второй части этой серии мы сфокусируемся на калибровке наших моделей с использованием информативных априорных данных из экспериментов:
- Почему важно калибровать модели маркетингового микса?
- Как мы можем использовать байесовские априорные данные для калибровки нашей модели?
- Какие эксперименты мы можем провести, чтобы определить наши байесовские априорные данные?
Затем мы закончим обзором Python, используя пакет pymc-marketing для калибровки модели, которую мы создали в первой статье.
Полную записную книжку можно найти здесь:
pymc_marketing/notebooks/2. калибровка моделей маркетингового микса (МММ) на Python.ipynb at main ·…
1.0 Калибровка моделей маркетингового микса
Моделирование маркетингового микса (МММ) — это статистический метод, используемый для оценки влияния различных маркетинговых каналов (таких как телевидение, социальные сети, платный поиск) на продажи. Цель МММ — понять рентабельность инвестиций (ROI) каждого канала и оптимизировать будущие расходы на маркетинг.
Существует несколько причин, по которым нам необходимо калибровать наши модели. Прежде чем мы перейдём к обзору Python, давайте рассмотрим их подробнее!
1.1 Почему важно калибровать модели маркетингового микса?
Калибровка МММ имеет решающее значение, поскольку, хотя они и предоставляют ценную информацию, они часто ограничены несколькими факторами:
- Мультиколлинеарность: это происходит, когда различные маркетинговые каналы сильно коррелированы, что затрудняет различение их индивидуальных эффектов. Например, телевидение и социальные сети могут работать одновременно, вызывая перекрытие их воздействия. Калибровка помогает распутать эффекты этих каналов, путём включения дополнительных данных или ограничений.
- Неучтённые конфаундеры: модели МММ основаны на наблюдаемых данных, но могут упустить важные переменные, которые также влияют как на маркетинг, так и на продажи, такие как сезонность или изменения рыночного спроса. Калибровка может помочь скорректировать эти неучтённые конфаундеры.
- Ретаргетинг: вы когда-нибудь посещали веб-сайт с продуктом, а затем обнаруживали, что все ваши социальные сети внезапно «случайно» показывают вам рекламу этого продукта? Это не совпадение, это называется ретаргетингом, и он может быть эффективным. Однако часть потенциальных клиентов, которые подвергаются ретаргетингу и затем совершают покупку, сделали бы это в любом случае!
Без надлежащей калибровки эти проблемы могут привести к неточным оценкам эффективности маркетинговых каналов, что приведёт к принятию неверных решений о расходах на маркетинг и стратегии.
1.2 Как мы можем использовать байесовские априорные данные для калибровки наших моделей?
В последней статье мы говорили о том, как байесовские априорные данные представляют наши первоначальные убеждения о параметрах в модели, таких как эффект расходов на телевидение на продажи. Мы также рассмотрели, как параметры по умолчанию в pymc-marketing были разумным выбором, но слабо информативными. Предоставление информативных априорных данных, основанных на экспериментах, может помочь откалибровать наши модели и решить проблемы, поднятые в последнем разделе.
Есть несколько способов предоставить априорные данные в pymc-marketing:
- Изменение априорных данных по умолчанию saturation_beta напрямую, как в примере ниже, используя усечённое нормальное распределение для обеспечения положительных значений:
model_config = {
'intercept': Prior("Normal", mu=0, sigma=2),
'likelihood': Prior("Normal", sigma=Prior("HalfNormal", sigma=2)),
'gamma_control': Prior("Normal", mu=0, sigma=2, dims="control"),
'gamma_fourier': Prior("Laplace", mu=0, b=1, dims="fourier_mode"),
'adstock_alpha': Prior("Beta", alpha=1, beta=3, dims="channel"),
'saturation_lam': Prior("Gamma", alpha=3, beta=1, dims="channel"),
'saturation_beta': Prior("TruncatedNormal", mu=[0.02, 0.04, 0.01], lower=0, sigma=0.1, dims=("channel"))
}
mmm_with_priors = MMM(
model_config=model_config,
adstock=GeometricAdstock(l_max=8),
saturation=LogisticSaturation(),
date_column=date_col,
channel_columns=channel_cols,
control_columns=control_cols,
)
- Использование метода add_lift_test_measurements, который добавляет в модель новый член правдоподобия, помогающий откалибровать кривую насыщения (не волнуйтесь, мы рассмотрим это подробнее в обзоре Python):
lift_test — Open Source Marketing Analytics Solution
1.3 Какие эксперименты мы можем провести, чтобы определить наши байесовские априорные данные?
Эксперименты могут предоставить убедительные доказательства для обоснования априорных данных, используемых в МММ. Некоторые распространённые эксперименты включают:
- Тесты на конверсию: эти тесты часто проводятся на таких платформах, как VK, YouTube, Snapchat, TikTok и DV360, где пользователи случайным образом делятся на тестовую и контрольную группы. Тестовая группа подвергается маркетинговой кампании, в то время как контрольная группа — нет. Разница в коэффициентах конверсии между двумя группами определяет фактический подъём, относящийся к каналу.
- Гео-лифтовые тесты: в гео-лифтовом тесте маркетинговые усилия отключаются в определённых географических регионах, в то время как в других продолжаются. Сравнивая производительность в тестовых и контрольных регионах, вы можете измерить дополнительный эффект маркетинга в каждом регионе. Пакет Python CausalPy имеет простую в использовании реализацию, которую стоит проверить:
Bayesian geolift with CausalPy — CausalPy 0.4.0 documentation
- Тестирование переключения: этот метод предполагает быстрое включение и выключение маркетинговых кампаний на коротких интервалах для наблюдения за изменениями в поведении потребителей. Он наиболее применим к каналам с немедленным воздействием, таким как платный поиск.
2.0 Обзор Python
Теперь, когда мы понимаем, почему нам нужно калибровать наши модели, давайте откалибруем нашу модель из первой статьи! В этом обзоре мы рассмотрим:
- Моделирование данных
- Моделирование экспериментальных результатов
- Предварительная обработка экспериментальных результатов
- Калибровка модели
- Валидация модели
2.1 Моделирование данных
Мы начнём с моделирования данных, использованных в первой статье. Если вы хотите узнать больше о процессе генерации данных, ознакомьтесь с первой статьёй, где мы провели подробный обзор:
Освоение моделирования маркетингового микса на Python
Когда мы обучали модель в первой статье, вклад телевидения, социальных сетей и поиска был переоценён. Это, по-видимому, было обусловлено тем, что прокси-сервер спроса вносил не такой значительный вклад, как реальный спрос. Так что давайте продолжим и подумаем о проведении эксперимента, чтобы справиться с этим!
2.2 Моделирование экспериментальных результатов
Чтобы смоделировать некоторые экспериментальные результаты, мы напишем функцию, которая принимает известные параметры для канала и выводит истинное значение вклада для канала. Помните, что в реальности мы не будем знать эти параметры, но это упражнение поможет нам понять и протестировать метод калибровки из pymc-marketing.
2.3 Предварительная обработка экспериментальных результатов
Теперь, когда мы собрали экспериментальные результаты, нам нужно предварительно обработать их, чтобы привести в требуемый формат для добавления в нашу модель. Нам нужно будет предоставить модели фрейм данных с 1 строкой для каждого эксперимента в следующем формате:
channel: канал, который был протестированx: предварительные расходы на каналdelta_x: изменение, внесённое вxdelta_y: выведенное изменение продаж из-заdelta_xsigma: стандартное отклонениеdelta_y
Мы не моделировали экспериментальные результаты с мерой неопределённости, поэтому для простоты мы установили сигму равной 5% от подъёма.
2.4 Калибровка модели
Теперь мы собираемся переобучить модель из первой статьи. Мы подготовим обучающие данные так же, как и в прошлый раз, путём:
- Разделения данных на признаки и цель.
- Создания индексов для обучающей выборки и выборки вне времени — выборка вне времени поможет нам проверить нашу модель.
2.5 Валидация модели
Давайте оценим, как наша новая модель соотносится с истинными вкладами. Ниже мы проверяем истинные вклады:
Заключительные мысли
Сегодня мы показали вам, как мы можем включить априорные данные, используя экспериментальные результаты. Пакет pymc-marketing упрощает задачу аналитика, работающего с моделью. Если вы хотите углубиться в работу, ознакомьтесь с их учебником:
Калибровка с помощью подъёмного теста — Open Source Marketing Analytics Solution
Однако не дайте себя обмануть…. На вашем пути к хорошо откалиброванной модели всё ещё есть серьёзные проблемы!
Логистические проблемы, связанные с ограничениями по количеству географических регионов по сравнению с каналами, с которыми вы работаете, или трудности с получением одобрения на проведение экспериментов от маркетинговой команды — это лишь некоторые из этих проблем.
Стоит рассмотреть возможность проведения полного отключения маркетинга и использования результатов в качестве априорных данных для определения спроса/базовых продаж. Это помогает решить логистическую задачу, а также повышает мощность вашего эксперимента (поскольку увеличивается размер эффекта).
Надеюсь, вам понравилась вторая часть! Подписывайтесь на меня, если хотите продолжить этот путь к освоению МММ — в следующей статье мы начнём думать о том, как мы можем оптимизировать маркетинговые бюджеты!
