Метод

Как считается MMM: модель, её проверка и честный отказ

Модель медиамикса в Econometrica MMM Optimizer – байесовская эконометрическая модель: она оценивает вклад каждого рекламного канала в продажи не одной цифрой, а распределением возможных значений, и показывает его 90-процентным диапазоном правдоподобия. Это эконометрическое моделирование маркетинг-микса (MMM) на байесовском методе. Ниже – из чего состоит модель, какими проверками мы отделяем надёжный расчёт от ненадёжного и что модель не делает.

Из чего состоит модель

  • Перенос эффекта рекламы (адсток). Реклама продолжает работать после выхода. Модель учитывает это двумя способами: геометрическим затуханием – скорость затухания оценивается по данным – или по форме Вейбулла с заданной формой. По умолчанию способ подбирается автоматически.
  • Насыщение. После некоторого уровня вложений каждый следующий рубль в канале даёт меньше предыдущего. Насыщение описывается кривой Хилла, её параметры оцениваются по данным.
  • Календарь российских праздников учитывается автоматически; его можно отключить.
  • Сезонность. Сезонная волна добавляется, если в данных не меньше двух полных циклов и она статистически заметна; иначе сезонной составляющей нет.
  • Внешние факторы – цена, промоакции, дистрибуция, заболеваемость и другие – входят в модель, если вы даёте их отдельными колонками.
  • Результаты экспериментов. Если у вас есть результаты лифт-тестов, их можно учесть в модели как дополнительное наблюдение.

Опора на знания отрасли. Оценки опираются и на ваши данные, и на априорные отраслевые допущения. Чем короче история, тем больше вес допущений – это видно по ширине диапазонов.

Кривые отклика: где следующий рубль ещё работает

Кривые отклика четырёх каналов с точками «сейчас» и «после перераспределения», демонстрационные данныеПо горизонтали – затраты на канал за 156 недель, по вертикали – прирост продаж от канала. Для каждого канала кружок – затраты сейчас, закрашенная точка – после перераспределения бюджета.05001 0001 50005001 0001 5002 000Затраты за 156 недель, млн, в рубляхПрирост продаж от канала, млнТВНаружная рекламаОнлайн-видеоПоиск
  • ТВ
  • Наружная реклама
  • Онлайн-видео
  • Поиск
  • Затраты сейчас
  • После перераспределения
У ТВ кривая в текущей точке почти плоская: насыщение. У онлайн-видео и поиска кривые ещё растут – программа переносит туда часть бюджета ТВ, и точки сдвигаются по кривым.Демонстрационные данные, не клиентский проект. График сайта по числам расчёта программы Econometrica MMM Optimizer.
Данные графика таблицей
Точки на кривых отклика, демонстрационный расчёт (за 156 недель)
КаналЗатраты сейчас, млнЗатраты после, млнПрирост по кривой сейчас, млнПрирост по кривой после, млн
ТВ954,4551,91 242,11 101,3
Наружная реклама261,1242,6287,3274,3
Онлайн-видео380,3623,7923,91 230,1
Поиск312,1489,6470,4717,8
Ролик «Перенос и насыщение»Иллюстрация на синтетических данных
Текстовое описание ролика
  1. 0,0–3,0 сРеклама продолжает работать после выхода.
  2. 3,0–9,0 сРеклама вышла один раз, а её эффект виден ещё несколько периодов и постепенно затухает
  3. 9,0–14,0 сскорость затухания при геометрическом переносе модель оценивает по данным.
  4. 14,0–20,3 сПосле некоторого уровня вложений каждый следующий рубль в канале даёт меньше предыдущего.
  5. 20,3–25,3 сНасыщение описывается кривой Хилла, её параметры оцениваются по данным.
  6. 25,3–31,9 сПри коротком ряде – меньше 30 наблюдений – программа по умолчанию выбирает упрощённый режим:
  7. 31,9–38,0 собычную регрессию с фиксированными параметрами переноса и насыщения.

Как идёт расчёт

Модель построена на PyMC – открытой библиотеке байесовского моделирования. В байесовском режиме расчёт идёт сэмплером NUTS: по умолчанию четыре независимые цепи по 2000 выборок после 2000 шагов прогрева. Цепи – это несколько параллельных прогонов; если они сошлись к одному ответу, расчёту можно доверять больше.

При коротком ряде – меньше 30 наблюдений – программа по умолчанию выбирает упрощённый режим: обычную регрессию с фиксированными параметрами переноса и насыщения. В нём у вклада каналов диапазона нет, остальные диапазоны строятся иначе, и вердикт «надёжно» не выдаётся никогда.

Четыре состояния вердикта

После расчёта модель получает одно из четырёх состояний:

  1. Надёжно. Расчёт сошёлся, проверки качества пройдены.
  2. Совет с оговоркой. Совет даётся, но с оговоркой и названными причинами. Причины: данных мало относительно числа параметров модели; качество модели слабое; дивергенции есть, но их число не превышает порога отказа; низкое эффективное число выборок; низкий показатель E-BFMI; проблема на проверке априорных допущений; отключён календарь праздников.
  3. Модель ненадёжна. Расчёт не сошёлся. Программа показывает причину и не применяет переброску бюджета автоматически.
  4. Надёжность не проверена. Если диагностику получить нельзя или она неполная, программа так и пишет и предлагает трактовать рекомендации осторожно.

Пороги отказа

Модель помечается ненадёжной, если выполнено хотя бы одно условие:

  • наибольший показатель сходимости R-hat равен 1,05 или выше. R-hat сравнивает разброс внутри цепей и между цепями; близкое к единице значение означает, что цепи пришли к одному ответу;
  • дивергенций больше 1 % от всех сохранённых выборок всех цепей, а если это меньше 20 – больше 20. При расчёте по умолчанию (четыре цепи по 2000 выборок) порог – больше 80 дивергенций. Дивергенция – сбой шага сэмплера, признак того, что часть распределения расчёт мог пропустить.

Нехватка данных к отказу не ведёт: при ограниченных данных совет даётся с оговоркой. Отказ – только по несходимости расчёта.

Пороги действуют в версии 2.5.11 и пересматриваются по итогам проверки метода.

Как выглядит честный отказ

Честный отказ

Честный отказЦепочки расчётаШаги расчётаСходимость R-hat1,001,051,30порог ≥ 1,05R-hat = 1,23

Модель помечена как ненадёжная

Переброска бюджета отключена – модель не завершила расчёт корректно

Порог R-hat ≥ 1,05 – в версии 2.5.11; пересматривается по итогам проверки метода.

Если цепи расчёта не сошлись и наибольший R-hat достиг порога 1,05, модель помечается ненадёжной, причина называется, а переброска бюджета не применяется автоматически.Иллюстрация на синтетических данных
Данные иллюстрации таблицей
Средние значения параметра по цепочкам и сходимость (синтетические данные)
ЦепочкаСреднее значение параметра
Цепочка 10,46
Цепочка 20,47
Цепочка 30,55
Цепочка 40,52
R-hat по четырём цепочкам1,23
Порог отказа≥ 1,05

Если цепи расчёта не сошлись, модель помечается ненадёжной и называет причину, а переброска бюджета не применяется автоматически: ползунки бюджета остаются в текущем положении.

Предельная отдача и распределение бюджета

При оптимизации рекламного бюджета распределение ищется по предельной отдаче каналов – сколько даст следующий рубль в каждом канале – в границах, которые вы задаёте: по каналу, по группам «бренд» и «перформанс» (если модель иерархическая) и по бюджету в целом.

В окне программы по умолчанию бюджет канала может меняться от 20 до 200 % текущего; границы можно изменить. Можно поставить и обратную задачу – какой бюджет нужен для цели продаж, – а также найти, при каком общем бюджете прибыль наибольшая, если показатель переведён в деньги.

Предельная отдача каналов показывается с диапазоном; разброс оптимальных долей можно рассчитать отдельно. Рекомендуемые суммы и прогнозный прирост – точечные: оптимизатор работает по средним оценкам модели.

По каждому каналу программа ставит метку решения – например, «Масштабировать», «Под наблюдением» или «Недостаточно данных»; при ненадёжной модели – «Требует переобучения».

Средняя и предельная окупаемость каналов

Средняя и предельная окупаемость четырёх каналов с 90-процентными интервалами, демонстрационные данныеДля каждого канала две строки: квадрат – средняя окупаемость, кружок – предельная, то есть отдача следующего рубля. Горизонтальные линии – 90-процентные интервалы, вертикальная черта – значение 1.00,511,522,53Окупаемость: продажи на рубль затратПоиск2,031,62Онлайн-видео2,341,61Наружная реклама0,970,58ТВ1,080,17
  • Средняя окупаемость
  • Предельная – отдача следующего рубля
  • 90-процентный интервал
У ТВ средняя окупаемость 1,08, а предельная – 0,17: следующий рубль в ТВ приносит заметно меньше среднего. Широкий интервал – меньше уверенности в оценке.Демонстрационные данные, не клиентский проект. График сайта по числам расчёта программы Econometrica MMM Optimizer.
Данные графика таблицей
Окупаемость каналов, демонстрационный расчёт
КаналСредняя окупаемость90-процентный интервалПредельная окупаемость90-процентный интервал
Поиск2,031,11–2,911,620,94–2,03
Онлайн-видео2,341,86–2,771,610,83–2,19
Наружная реклама0,970,46–1,500,580,08–0,86
ТВ1,080,80–1,390,170,00–0,33
Ролик «Куда переложить бюджет»Иллюстрация на синтетических данных
Текстовое описание ролика
  1. 0,0–5,0 сРаспределение рекламного бюджета ищется по предельной отдаче каналов
  2. 5,0–10,5 ссколько даст следующий рубль в каждом канале
  3. 10,5–15,5 сПредельная отдача каналов показывается с диапазоном
  4. 15,5–21,5 сВ окне программы по умолчанию бюджет канала может меняться от 20 до 200 % текущего; границы можно изменить.
  5. 21,5–28,5 сПри переносе бюджета из насыщенного канала в канал с более высокой предельной отдачей прогноз растёт.
  6. 28,5–36,0 сРекомендуемые суммы и прогнозный прирост – точечные: оптимизатор работает по средним оценкам модели.

Проверка на истории

Модель можно проверить на истории: она переобучается на прошлом и предсказывает следующий отрезок, и так по нескольким отрезкам – нужно не меньше трёх. Программа сначала сравнивает точность с наивным прогнозом, затем считает, как часто факт попадает в 90-процентный интервал прогноза. Если попаданий меньше 70 %, программа предупреждает. Проверка запускается отдельно; если её запускали и она завершилась, результат попадает в отчёт программы.

Что доказывает такая проверка: насколько модель на ваших данных предсказывала прошлое. Точность модели в будущем она не доказывает – она показывает, где проходит граница уверенности.

Повторяемость и что можно проверить после сдачи

Статистическая оценка – не арифметика: при повторном обучении числа могут сдвигаться в пределах интервала неопределённости; повторяются процедура и интервал, а не шестой знак после запятой.

Что можно проверить после сдачи:

  • параметры модели, включая априорные допущения, – отдельным файлом JSON;
  • отпечаток расчёта – веб-отчёт содержит отпечаток SHA-256 файла модели и результатов разбивки (исходная выгрузка в него не входит). Отпечаток печатается, только если его удалось посчитать; если нельзя, отчёт называет причину.

Когда не подходит

  • Нужно, чтобы модель сама выделила тренд. Отдельной составляющей тренда в модели нет; если тренд важен, его дают отдельной колонкой-фактором.
  • Нужна форма переноса по Вейбуллу, обученная на данных. У этого способа форма задана; по данным оценивается скорость геометрического затухания.
  • Нужна рекомендация по бюджету с учётом всей неопределённости модели. Рекомендуемые суммы – по средним оценкам; неопределённость видна у вклада, окупаемости и предельной отдачи.
  • Целевой показатель – восприятие бренда. Такие показатели целевыми не поддерживаются.
  • Нужна замена эксперименту. Модель оценивает вклад по истории наблюдений; если есть результаты экспериментов, их стоит учесть в модели.

Вопросы и ответы

Почему диапазон, а не одна цифра?

Потому что вклад канала оценивается по ограниченной истории, и честнее показать, в каких пределах он лежит. Широкий диапазон – сигнал, что данных для уверенного вывода по этому каналу не хватает.

Что значит «модель ненадёжна»?

Расчёт не сошёлся: наибольший R-hat равен 1,05 или выше либо дивергенций больше порога. Программа называет причину и не применяет переброску бюджета автоматически.

Отказывается ли программа советовать при малых данных?

Нет. При ограниченных данных совет даётся с оговоркой, а модель намеренно сдержана: она сильнее опирается на априорные допущения. Отказ – только при несошедшемся расчёте.

Получится ли при повторном расчёте то же число?

Повторяются процедура и интервал. Числа при повторном обучении могут сдвигаться в пределах интервала неопределённости.

Почему пороги могут измениться?

Метод проходит отдельную проверку; пороги версии 2.5.11 пересматриваются по её итогам.

Хотите посмотреть, как метод отработает на ваших данных?

Опишите задачу и какие данные есть – скажем, что из них получится.

Ответим на заявку не позднее чем через два рабочих дня после получения заявки.

Если почтовая программа не открылась, напишите на hello@mmm-optimizer.pro