Clew

← Блог

Гайд

Результаты A/B-тестирования: как читать и когда катить

Что на самом деле значат p-value, доверительный интервал и мощность, как выглядит один и тот же прирост на разной выборке, и семь способов получить победу, которой нет: подглядывание, множественные сравнения, парадокс Симпсона, сезонность.

Отчёт A/B-теста выглядит убедительно: две конверсии, прирост в процентах, p-value, зелёная плашка «победил B». Проблема в том, что из этих чисел легко сделать вывод, которого в них нет.

Из чего состоит результат

  • Конверсии вариантов — доли, а не абсолютные числа. Обе нужны с объёмом выборки: 23 % из 1 000 и 23 % из 30 000 — это очень разные 23 %.
  • Разница — в процентных пунктах (23 % − 20 % = 3 п.п.) и относительная (+15 %). Путать их — классика отчётов: «+15 %» звучит внушительнее, «+3 п.п.» честнее.
  • Доверительный интервал разницы — диапазон, в котором правдоподобно лежит настоящий эффект.
  • p-value — насколько такие данные неожиданны, если разницы на самом деле нет.
  • Мощность — с какой вероятностью тест вообще способен был заметить эффект такого размера.

p-value: что это значит и чего не значит

p-value = 0,03 означает: если бы разницы между вариантами не было, данные с таким или большим разрывом получались бы примерно в 3 % повторов теста. Всё.

Чего p-value не означает:

  • это не вероятность того, что B лучше A;
  • это не вероятность того, что вы ошибаетесь;
  • это не размер эффекта: p = 0,001 не значит «прирост огромный», а значит «данных много»;
  • p = 0,06 и p = 0,04 — не «нет эффекта» и «есть эффект», а два очень похожих результата по разные стороны договорённого порога.

На вопрос «с какой вероятностью B лучше» отвечает байесовский подход: он даёт P(B > A) и ожидаемые потери при неверном выборе. В калькуляторе A/B-тестов это отдельная вкладка, а в статистике тестов Clew — строка «вероятность, что B лучше». Дисциплину это не отменяет: подглядывание портит и байесовский вывод.

Доверительный интервал — главное число в отчёте

Интервал показывает не только «есть или нет», но и «сколько». Сравните два теста с одинаковым приростом конверсии с 20 % до 23 %:

  • 1 000 посетителей на вариант (200 и 230 конверсий): разница +3,0 п.п., интервал от −0,6 до +6,6 п.п., p = 0,10, мощность 37 %. Вывод: тест ничего не решил.
  • 3 000 посетителей на вариант (600 и 690 конверсий): та же разница +3,0 п.п., интервал от +0,9 до +5,1 п.п. (в относительных числах от +4 % до +26 %), p = 0,005, мощность 81 %. Вывод: эффект есть, и он, скорее всего, между 1 и 5 процентными пунктами.

Одинаковый «прирост +15 %» в двух отчётах — и совершенно разные основания для решения. Поэтому в выводах стоит писать интервал: «+0,9…+5,1 п.п. с уверенностью 95 %» вместо «+15 %, значимо».

Второе применение интервала — незначимый результат. Если интервал от −0,5 до +0,7 п.п., вы узнали кое-что полезное: большого эффекта здесь нет. Если от −3 до +6 п.п. — вы не узнали ничего, кроме того, что данных было мало.

Мощность и «незначимо» ≠ «нет разницы»

Мощность — вероятность заметить эффект заданного размера, если он есть. Стандарт 80 % означает: каждый пятый реально существующий эффект такого размера тест пропустит.

Пример: 800 посетителей на вариант, 160 и 176 конверсий — 20 % против 22 %. p = 0,33, интервал от −2,0 до +6,0 п.п., мощность при наблюдаемой разнице 17 %. Такой тест не мог ничего доказать: чтобы надёжно ловить относительный прирост 10 % при базе 20 %, нужно 6 348 посетителей на вариант, то есть в восемь раз больше.

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

Подводные камни

Подглядывание

Ежедневные проверки с остановкой при первом p < 0,05 превращают обещанные 5 % ложных срабатываний в 20 с лишним. Мы прогнали 3 000 симуляций, где разницы между вариантами нет: конверсия 20 % в обеих группах, 500 посетителей на вариант в день, две недели. Одна проверка в конце дала «значимый» результат в 4,6 % случаев, ежедневные проверки — в 22,1 %. За месяц ежедневных проверок — в 26,4 %.

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

Множественные сравнения

Каждая дополнительная метрика, сегмент или вариант — ещё один шанс случайно найти «победу». При независимых проверках на уровне 5 % вероятность хотя бы одной ложной находки: 14 % на трёх проверках, 23 % на пяти, 40 % на десяти, 64 % на двадцати.

Отсюда практика. Главная метрика выбирается до теста. Если вариантов больше двух, порог делится на число сравнений. А находка в сегменте («зато у мобильных выросло!») — не результат, а повод для следующего теста, спланированного под этот сегмент.

Парадокс Симпсона

Бывает, что B выигрывает в каждом сегменте и проигрывает в целом. Пример с округлёнными числами:

  • десктоп: A — 200 конверсий из 1 000 (20,0 %), B — 66 из 300 (22,0 %). Выигрывает B;
  • мобильные: A — 50 из 500 (10,0 %), B — 180 из 1 700 (10,6 %). Выигрывает B;
  • всего: A — 250 из 1 500 (16,7 %), B — 246 из 2 000 (12,3 %). Выигрывает A.

Причина не в статистике, а в составе групп: у варианта B доля мобильного трафика 85 %, у A — 33 %, а мобильные конвертируются вдвое хуже. В правильно случайном тесте так не бывает — значит, случилось что-то ещё: вариант включили в другое время суток, часть трафика не попала в тест из-за бага, платформа перекосила деление.

Поэтому в отчёте всегда проверяйте соотношение групп по размеру (проверка на SRM — sample ratio mismatch) и по составу. Если показов A и B не поровну там, где деление 50/50, сначала ищите техническую причину, а не победителя.

Сезонность и дни недели

Аудитория вторника не равна аудитории субботы, а неделя распродажи не равна обычной. Тест на четыре дня меряет не эффект изменения, а конкретные четыре дня. Минимум — семь полных дней, лучше две полные недели; если в тест попала акция, праздник или большой запуск, отметьте это в выводах, а спорный результат проверьте повтором.

Эффект новизны и обратный ему

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

Что считается за конверсию

Тест предполагает независимые наблюдения: один пользователь — одно наблюдение. Если считать события, один человек, нажавший кнопку пять раз, даст пять «конверсий», и p-value станет оптимистичнее реальности. Туда же — боты и внутренний трафик: их нужно исключать одинаково в обеих группах.

Разные выборки на входе

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

Когда результат нельзя катить

  • Соотношение показов не совпадает с заданным делением (SRM) — сначала техническая причина, потом всё остальное.
  • Тест остановлен раньше плановой выборки, потому что «стало значимо».
  • Тест шёл меньше недели или захватил акцию, праздник, крупный сбой.
  • Главная метрика выросла, а ограничители просели: больше обращений в поддержку, выше отток, медленнее загрузка.
  • Победа нашлась в одном из многих сегментов, и именно её объявляют результатом.
  • Доверительный интервал захватывает и незначимый прирост, и потери, которые вы не готовы понести.
  • Прирост держится только на первых днях теста.
  • Изменение выигрывает по кликам, но проигрывает по действию, ради которого всё затевалось.

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

Как описать результат, чтобы через год его поняли

Рабочий формат из пяти строк:

Гипотеза: ...
Метрика: активация (первый опубликованный тур)
Выборка: 3 000 на вариант, план 3 000, 14 дней, SRM в норме
Результат: 20,0 % → 23,0 %, +3,0 п.п. (95 % ДИ: +0,9…+5,1), p = 0,005
Решение: раскатили на 100 %, наблюдаем ограничители 2 недели

Такая запись переживёт и смену команды, и спор через полгода «а мы это точно проверяли?». Как дойти до неё по шагам — в статье «Этапы A/B-тестирования»; какой метод теста выбрать под задачу и трафик — в «Методах A/B-тестирования».

В Clew статистика A/B-теста тура показывает доходимость каждого варианта с интервалом и прирост B с 95 % интервалом разницы. Рядом — p-value, вероятность, что B лучше, проверка SRM и прогресс к плановой выборке. Значимость, полученную до плана, она помечает как не окончательную — как это выглядит и настраивается. Спланировать выборку до старта можно в калькуляторе A/B-тестов.

Туры, попапы и онбординг в эпоху ИИ

7 паттернов с числом шагов, правилами текста и метриками, что меняет ИИ, чек-лист перед публикацией. PDF, 2 страницы. Что внутри гайда →