Отправить статью

Как машинное обучение помогает, когда проведение A/B-теста невозможно?

Как оценить влияние изменений без A/B-теста? Когда провести эксперимент невозможно, аналитика легко превращается в догадки. Но есть способ сохранить точность и опираться на данные. Старший аналитик Алексей Терентьев объясняет, как работает Propensity Score Matching и чем он полезен в таких задачах.

Как машинное обучение помогает, когда проведение A/B-теста невозможно?
© charlesdeluvio/Unsplash
Старший аналитик

Один из самых частых вопросов в продуктовой аналитике — как объективно оценить влияние изменений на бизнес-метрики. A/B-тестирование традиционно считается золотым стандартом, но на практике далеко не всегда возможно организовать честный рандомизированный эксперимент.

В таких ситуациях мне помогает Propensity Score Matching (PSM) — статистический метод, с помощью которого можно компенсировать отсутствие случайного распределения, подобрав сопоставимые группы пользователей. Метод снижает влияние selection bias и позволяет точнее оценить причинно-следственные эффекты.

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

Propensity Score Matching (PSM)

Простой пример

Представим типичную задачу: в сервисе уже доступна платная премиум-подписка, и нужно понять, как она влияет на вовлеченность и удовлетворенность пользователей.

Проведение A/B-теста здесь не представляется возможным — пользователи сами принимают решение о покупке, и навязать или отменить подписку в рамках эксперимента неэтично и технически сложно. Кроме того, подписчики и неподписчики изначально могут различаться по уровню интереса к продукту, активности и т. д. Следовательно, прямое сравнение этих групп даст искаженный результат.

В такой ситуации помогает Propensity Score Matching. Сначала определяется набор признаков (характеристик пользователей), которые влияют на оформление подписки. На их основе рассчитывается индивидуальная вероятность того, что пользователь стал бы подписчиком. Далее каждому подписчику подбирается «близнец» среди неподписчиков с максимально похожим значением вероятности оформления подписки. Так формируются сбалансированные пары, где ключевые различия между пользователями минимизированы.

После этого можно сравнивать группы и делать более корректные выводы о реальном влиянии подписки на поведение и метрики пользователей.

В каких ситуациях полезен PSM?

Propensity Score Matching особенно полезен в ситуациях, когда прямое сравнение групп дает искаженные результаты из-за систематических различий между ними. В реальной работе такие ситуации возникают регулярно. Вот несколько типичных кейсов, где я применяю этот подход.

Когда провести A/B-тест невозможно:

  • A/B-тест невозможен по техническим, бизнес- или этическим причинам (например, фичу можно раскатить только на всех пользователей, нет бюджета на проведение A/B и т. д.).
  • Группы формируются естественным образом (например, пользователи сами выбрали тариф или функцию).
  • Нужно получить результат быстро, нет времени на проведение A/B.
  • Требуется ретроспективная оценка (например, изменений, произведенных в прошлом, которые внедрялись без A/B).

Когда нужно повысить точность уже проведенного A/B-теста:

  • В тесте наблюдается высокая дисперсия: эффект «плавает» от запуска к запуску.
  • Есть подозрения, что группы случайно оказались несбалансированными — например, одна группа активнее другой по ключевым метрикам до старта.
  • Нужно дополнительно выровнять группы по важным признакам, чтобы сузить доверительный интервал и сделать выводы более уверенными.

Во всех этих случаях PSM помогает «очистить» сравнение от искажений и приблизиться к честной оценке эффекта — даже когда полноценный эксперимент невозможен.

Какая основная идея PSM?

Когда мы хотим оценить влияние какого-либо воздействия (например, новой функции, скидки или подписки) на поведение пользователей, нас интересует ответ на вопрос: что бы произошло, если бы пользователь не получил это воздействие?

Предположим, у нас есть две группы пользователей: одна получила воздействие (тестовая), другая нет (контрольная). У участников тестовой группы мы видим реальный результат: они уже столкнулись с воздействием, и мы можем измерить, как они себя после него вели. Но чтобы оценить эффект, нам нужно знать, как те же самые пользователи повели бы себя без воздействия. Это гипотетический сценарий, который напрямую наблюдать невозможно.

Если тестовая и контрольная группы разделены случайным образом (пользователи в них не отличаются), можно просто сравнить средние значения метрик в этих группах. Разница между ними даст честную оценку эффекта — это и есть стандартный A/B-тест, в котором PSM не требуется.

Но если тестовая и контрольная группы разделены не случайным образом (пользователи в них отличаются по своим характеристикам), простое сравнение даст искаженный результат. В таких случаях классический A/B-тест уже не помогает.

Здесь и пригодится PSM. Он формирует «псевдоконтрольную» группу, отбирая из общей контрольной выборки тех пользователей, которые максимально похожи по своим характеристикам на тех, кто получил воздействие. Это позволяет приблизительно оценить, как бы вели себя пользователи из теста без воздействия, и рассчитать эффект, нивелировав влияние исходных различий между группами.

Для этого PSM работает в два этапа:

  • Он рассчитывает propensity score — вероятность попадания пользователя в тестовую группу на основе его характеристик.
  • Выполняет matching — ищет для каждого пользователя из тестовой группы максимально похожего пользователя контрольной группы.

Машинное обучение в PSM

Давайте рассмотрим эти этапы подробнее. Оба они решаются с помощью алгоритмов машинного обучения, начнем с propensity score.

Propensity score — это оценка вероятности того, что пользователь попадет в тестовую группу, исходя из своих характеристик. По сути, это задача бинарной классификации: мы учим модель отличать тех, кто получил воздействие, от тех, кто не получил, используя только признаки пользователей до воздействия.

Для расчета этой вероятности можно использовать разные алгоритмы машинного обучения: логистическую регрессию, градиентный бустинг, Random Forest и другие. По моему опыту, бустинг — лучший вариант. Главное требование — чтобы модель хорошо калибровала вероятности и учитывала все значимые признаки.

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

После обучения модели propensity score нужно перейти к matching — сформировать псевдоконтрольную выборку, максимально похожую на тестовую группу.

Существуют разные подходы к этой процедуре, но я рекомендую использовать Nearest Neighbor Matching (NNM). Его суть — для каждого пользователя из тестовой группы подобрать ближайшего по значению propensity score пользователя из контрольной группы. Чем ближе значения — тем более «похожими» считаются пользователи.

Важно понимать, что один и тот же пользователь из контрольной группы может быть «ближайшим соседом» сразу для нескольких участников теста — это допустимо и не влияет на корректность оценки.

Matching позволяет заменить недостающие данные о поведении пользователей без воздействия на реальные наблюдения из контрольной группы. Это и дает возможность оценить эффект от воздействия за счет сравнения тестовой и получившейся «псевдо-контрольной» группы.

Nearest Neighbor Matching (NNM)

Как проводится анализ с помощью PSM: пошаговый алгоритм

Рассмотрим пошаговый алгоритм применения PSM. Весь процесс строится вокруг ключевой даты — даты тритмента, после которой пользователи начинают получать воздействие.

Шаг 1. Сформировать выборку

Собираем общий датасет из тестовой и контрольной групп. При этом контрольная группа должна быть существенно больше тестовой (например, в 5 раз), чтобы алгоритму было из чего выбирать «псевдо-контрольную» группу. Для каждого пользователя указываем, получил он воздействие или нет.

Шаг 2. Собрать признаки до воздействия

Извлекаем все релевантные характеристики пользователей за период до даты тритмента — активность, демографию, историю поведения и другие признаки, которые могут влиять на вероятность попадания в тестовую группу.

Шаг 3. Построить propensity score и подобрать пары

На основе этих признаков обучаем модель propensity score, которая будет оценивать вероятность получения воздействия. Затем применяем метод Nearest Neighbor Matching и формируем «псевдоконтрольную» группу из пользователей, максимально похожих на участников теста.

Шаг 4. Проверить корректность подбора

Перед тем как двигаться дальше, важно убедиться, что сопоставление сработало хорошо. На что я смотрю (самое основное):

  • качество модели propensity score должно быть высоким;
  • значение метрик, которые мы исследуем, у тестовой и «псевдо-контрольной» групп не должно отличаться до даты тритмента;
  • среднее значение propensity score у тестовой и «псевдо-контрольной» групп должно быть примерно одинаковым;
  • так как в «псевдо-контрольной» группе могут быть повторяющиеся пользователи, количество уникальных пользователей в группах не должно сильно отличаться.

Шаг 5. Рассчитать метрики после воздействия

Считаем целевые метрики (например, конверсию, удержание, средний чек) за период после даты тритмента — отдельно для тестовой и «псевдоконтрольной» групп.

Шаг 6. Оценить эффект

Сравниваем метрики и получаем оценку эффекта от воздействия. Ваше исследование готово!

Вывод

Propensity Score Matching — это хорошее решение, если провести A/B-тест невозможно, а оценка эффекта все равно необходима. Важно понимать, что это не альтернатива классическому A/B-тесту, а инструмент, который дополняет аналитический арсенал в сложных условиях.

Метод активно внедряется в ведущих IT-компаниях и все чаще используется в задачах, где стандартные подходы не работают. При этом широкой аудитории он пока мало знаком, а значит — остается хорошим способом усилить аналитическую практику.

Из моего опыта могу сказать, что на реальных кейсах PSM действительно показывает свою практическую ценность. Он помогает делать выводы в тех ситуациях, где иначе пришлось бы полагаться на интуицию — например, при анализе воздействия функций, которые уже запущены, или при заведомо не случайном распределении пользователей.

Однако важно учитывать: этот метод требует заметно больше усилий на построение моделей и обоснование того, что результатам можно доверять, чем классический A/B-тест. Тем не менее, при наличии опыта и грамотной реализации, PSM достаточно легко автоматизируется и может стать мощным инструментом в повседневной работе.

Деловой мир в
и
Деловой мир в
и
0 комментариев
Отправить
Чтобы оставить комментарий, авторизируйтесь или зарегистрируйтесь