Эффект новой функции наблюдается только у новых пользователей, а общий результат A/B теста нулевой. Как про...

Эффект новой функции наблюдается только у новых пользователей, а общий результат A/B-теста нулевой. Как проверить, можно ли обобщить эффект на весь продукт?

Проходите собеседования с ИИ помощником Hintsage

Краткий ответ

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

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

Исторический контекст

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

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

Постановка проблемы

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

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

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

Подробное решение

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

Затем оценивают эффект отдельно по сегментам и, главное, разницу этих эффектов. Формально проверяется не только гипотеза о ненулевом эффекте в каждом сегменте, но и гипотеза о равенстве эффектов между сегментами — это тест взаимодействия.

Полезно смотреть на:

  • оценку эффекта в каждом сегменте;
  • доверительные интервалы этих оценок;
  • доверительный интервал разницы эффектов между сегментами;
  • размер и состав сегментов;
  • заранее заданное правило принятия решения.

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

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

Для обобщения на весь продукт важен также состав выборки. Даже если эффект одинаков внутри теста, результат нельзя безоговорочно переносить на аудиторию, которая отличается по стране, платформе, каналу привлечения или стадии жизненного цикла. Если функция предназначена только новым пользователям, корректнее запускать её адресно, а не усреднять эффект на всех.

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

Ситуация из практики

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

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

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

Что кандидаты часто упускают

  1. Достаточно ли того, что эффект значим у новых пользователей, но незначим у существующих?

Нет. Значимость одного эффекта и незначимость другого не доказывают различие между ними. Нужно напрямую оценить взаимодействие или разницу эффектов; иначе можно принять различие в статистической мощности за различие поведения.

  1. Можно ли делить пользователей на сегменты после начала эксперимента?

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

  1. Что делать, если взаимодействие статистически значимо, но один сегмент очень мал?

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