Кейс: A/B-тест не показал значимости. Что отвечать

Формулировка кейса

Запустили A/B-тест на новую ленту рекомендаций. Ждали +3% к конверсии в покупку. Тест длился 2 недели, результат: лифт +1.2%, p-value = 0.18. Что будете делать?

Классический кейс, который задают на интервью в продуктовых командах. Его цель — проверить, что вы понимаете, как читать не значимый результат и не бросаетесь катить «потому что лифт же положительный».

Почему это сложный вопрос

У кандидатов обычно две крайности:

  • «Не значимо — забыли и пошли дальше» — видно отсутствие зрелости. Не каждый не значимый результат = нулевой эффект.
  • «+1.2% же хороший, катим» — катастрофическая ошибка. При p=0.18 мы не можем утверждать, что есть эффект вообще.

Правильный ответ — между этими крайностями, через структурное рассуждение.

Шаг 1. Уточняющие вопросы

Прежде чем отвечать, уточняем:

  • Какой был MDE при планировании теста? — Если заложили MDE=3%, а лифт 1.2% — тест и не должен был это поймать.
  • Сколько пользователей в каждой группе? — 10к, 100к или 10 млн?
  • Какая базовая конверсия? — От неё зависит дисперсия и мощность.
  • Одна метрика или много? — Если 10 метрик, нужна поправка на множественные сравнения.
  • Есть ли guardrails? — Retention, скорость, отписки. Если основная не значима, но guardrail просел — катить нельзя в принципе.
  • Тест ранжируется рандомно по user_id? — Не было ли SRM.

На собеседовании: эти вопросы показывают, что вы не считаете результат «очевидным».

Шаг 2. Проверяем достоверность

До интерпретации — проверяем, что результату можно доверять:

Sample Ratio Mismatch

Если 50/50 сплит, а в группах 50 200 / 49 800 — нормально. Если 52 000 / 48 200 — SRM, результатам нельзя верить. Chi-square p < 0.01 = проблема в сплите. Подробнее про SRM.

Guardrail-метрики

  • Retention D1, D7 не просел?
  • Время загрузки не выросло?
  • Краши, ошибки в логах?

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

Данные полные

Нет ли пропусков в last days. Нет ли ETL-лагов.

Попробовать силы на подобных вопросах проще всего в тренажёре Карьерник — прямо в Telegram, без регистрации через сайт.

Шаг 3. Считаем мощность post-hoc

Ключевой момент. Если при планировании заложили MDE=3%, а наблюдаемый эффект 1.2% — тест был спроектирован поймать эффект 3%+, а не 1-2%. Не значимый p-value — ожидаемый результат.

Формула мощности (грубо): для детекции 1.2% при α=0.05 и p_base=10% нужно ~600к пользователей в группу. Если у нас было 100к — мощности просто не хватало.

Ответ на собесе: «Посчитаю мощность post-hoc. Если тест был спроектирован для MDE=3%, а реальный эффект 1.2% — это ожидаемое не значимое. Нужно решить, хотим ли мы вообще ловить эффекты <3%».

Шаг 4. Интерпретация результата

Рассматриваем три сценария:

Сценарий A: «Эффекта действительно нет»

Если мощность была адекватной (например, тест заложен на MDE=1%, а получили 1.2%, p=0.18) — это значит, что эффект с высокой вероятностью около нуля.

Что делаем:

  • Не катим.
  • Пишем постмортем с выводами: гипотеза не подтвердилась.
  • Ищем, где была ошибка в гипотезе.

Сценарий B: «Недостаточно мощности»

Если тест не был рассчитан на такой маленький эффект — результат ничего не говорит. Нужно:

  • Решить, стоит ли продлевать.
  • Посчитать, сколько нужно дополнительных недель.
  • Учесть, что при длинных тестах растут риски внешних эффектов (сезонность, конкуренты).

Сценарий C: «Эффект есть, но нестабильный»

Лифт +1.2% мог быть реальным, но «замазался» шумом или сегментацией:

  • Смотрим лифт по сегментам — может, в одном сегменте +5%, в другом −3%.
  • Если есть чёткая разница — катим только на «хороший» сегмент.

Шаг 5. Ещё чек-пойнты

Даже если кажется, что все ясно — пройдите по списку:

  • Новизна (novelty effect) — в начале теста лифт мог быть +5%, к концу упал до нуля. Посмотреть динамику по неделям.
  • Peeking — не останавливали ли тест раньше срока? Если да, p-value нужно корректировать.
  • Метрика корректна? — Конверсия в покупку = (купили) / (пришли), но какая «пришли»? Может, поток изменился в тесте.
  • A/A-тест был? — Если не было, мы не знаем, правильно ли работает сплитер.

Шаг 6. Что говорим PM

Структурный вывод:

«Результат не значим, но это не однозначный отказ. Наблюдаемый лифт +1.2% при ожидаемом MDE=3% — ожидаемое «не значимо». Для решения предлагаю: (1) продлить тест ещё на 2 недели — это даст мощность поймать эффект ≥1.5%. (2) Или зафиксировать гипотезу как не подтверждённую, откатить и идти к следующей. Рекомендую вариант 1, потому что (...причины...)».

Хороший ответ заканчивается конкретным решением, а не «надо подумать».

Типичные ошибки на собесе

  • Бросаться интерпретировать без уточнений — не знаете MDE, а уже делаете выводы.
  • «Катим, потому что +1.2% лучше, чем ничего» — классическая ошибка, которая стоит вам лампочки в глазах интервьюера.
  • «Отрицательный результат = провал» — нет, это часть работы. Интервьюер хочет видеть, что вы умеете принимать «нулевые» результаты.
  • Игнорировать guardrails — первое, что спросят: «а retention как?»
  • Путать «не значим» и «нет эффекта» — не значим ≠ нет. Это про отсутствие доказательств при текущей мощности, не про доказательство отсутствия.

Пройти 30–50 задач по теме за вечер можно в Telegram-тренажёре. Это то, что отличает «знаю» от «уверенно отвечу на собесе».

Шаблон ответа

  1. Уточняющие: MDE, размер выборки, guardrails, количество метрик.
  2. Достоверность: SRM, guardrails, полнота данных.
  3. Мощность post-hoc: был ли тест рассчитан на такой эффект.
  4. Интерпретация: нет эффекта / мало мощности / есть эффект с шумом.
  5. Чек-пойнты: novelty, peeking, корректность метрики.
  6. Решение: продлевать / останавливать / катить на сегмент.

Этот каркас работает для любого «не значимого» теста.

Как тренироваться

Решать кейсы по A/B на собесе помогает только одно: практика. Читайте реальные разборы (Netflix Tech Blog, Авито, Ozon Tech) — там каждая статья начинается с «тест был не значим» или «мы думали X, оказалось Y».

Тренажёр Карьерник содержит блок A/B-кейсов: не значимые результаты, SRM, peeking, CUPED, novelty, множественные сравнения. Каждый с разбором типичных ошибок.

Совет: на собесе, когда не знаете точный ответ — ответ через структуру. «Я бы проверил (1), (2), (3)... и в зависимости от результата принял бы решение». Это в разы лучше «я бы посмотрел на результат и решил».

Читайте также

FAQ

Можно ли катить фичу, если лифт положительный, но не значимый?

Иногда — да. Критерии: (1) guardrails не просели, (2) бизнесовая цена внедрения низкая, (3) гипотеза идейно сильная, (4) сегментация показывает чёткий позитивный сигнал хоть где-то. Но формально это «решение без статистического подтверждения», и PM должен это понимать.

Что ответить на «не значит ли не значимый тест, что эффекта нет»?

Не значит. Не значимый p-value = «при текущем размере выборки мы не можем отличить наблюдаемый эффект от случайности». Если MDE теста был 3%, а эффект 1% — тест и не был спроектирован это доказывать. Для строгого доказательства «эффекта нет» нужны bayesian методы или equivalence tests.

Сколько обычно длится A/B-тест?

Стандарт — 2 недели. Этого достаточно для большинства продуктовых фич, чтобы отработал недельный цикл + дать погреться трекингу. Короче — риск недельных паттернов. Длиннее — риск внешних изменений и сезонности.

Когда нужно заканчивать не значимый тест?

Когда наблюдаемая динамика перестаёт сужать confidence interval, и видно, что при даже 2x размере выборки p-value не пересечёт 0.05. Это можно смотреть через conditional power или Bayesian posterior. Если нет инструмента — по дням и неделям видно тренд.