Как посчитать A/B-тест: выборка, длительность и чтение результата
Путь эксперимента — от гипотезы до решения «запускать или откатывать». С формулами словами, SQL-проверками и разбором ошибок, из-за которых тест врёт.
Что такое A/B-тест и когда он не подходит
A/B-тест — сравнение двух вариантов на случайных группах: одна часть пользователей видит текущую версию, вторая — изменённую. Случайность делает группы сопоставимыми: разницу в метрике можно связать с изменением, а не с тем, что в группу попали более активные люди.
Подходит метод не всегда. Если трафика мало, тест растянется на месяцы, а доверительный интервал окажется шире эффекта. Если изменение нельзя разделить между пользователями — скажем, смена цены — тест не ваш инструмент.
- Нужен ответ «почему»: тут помогают качественные разговоры с пользователями и просмотр записей сессий.
- Изменение раскатывается волнами по регионам: сравните «до и после» с поправкой на тренд — это квазиэксперимент, выводы слабее.
- Событие редкое: при конверсии 0,1 % даже большой трафик даёт единицы покупок, и разброс съедает эффект.
- Решение уже принято, а тест нужен для отчётности: трата трафика и времени.
Гипотеза и метрики: главная, вторичные и guardrail
Гипотеза формулируется до запуска по схеме «если — то — на сколько». Плохо: «рекомендации улучшат продажи». Хорошо: «Если показать похожие товары на карточке, конверсия в добавление в корзину вырастёт на 3 процентных пункта за две недели».
- Главная метрика — одна. По ней принимаете решение, и подменять её после старта нельзя.
- Вторичные объясняют механику: прирост пришёл от новых пользователей или от тех, кто уже был на сайте.
- Guardrail-метрики показывают, что не должно ухудшиться: время загрузки, доля ошибок, отписки, возвраты, нагрузка на поддержку.
- Метрика-прокси нужна, когда денежный результат не видно за две недели: например, доля дошедших до шага оплаты.
- Заменять деньги прокси нельзя, если решение дорогое: перестройка воронки или смена тарифа требуют прямого измерения выручки.
Размер выборки и длительность
Выборку считают до запуска. Она зависит от пяти величин: базовый уровень метрики, минимальный заметный эффект, разброс метрики, мощность и уровень значимости.
Для доли логика простая: размер одной группы примерно равен 16 × p × (1 − p), делённому на квадрат минимального заметного эффекта. Здесь p — базовый уровень конверсии, эффект — в абсолютных пунктах, а 16 связывает мощность 80 % и уровень значимости 5 %. При конверсии 10 % и желаемом росте до 11 % нужно около 14 400 пользователей на группу.
Длительность берут кратной целым неделям: будни и выходные ведут себя по-разному.
- Минимум — одна полная неделя, спокойнее — две. Для подписок срок равен бизнес-циклу.
- Итоговый срок — максимум из расчёта по выборке и одного полного цикла.
- Трафика не хватает: поднимайте минимальный заметный эффект, сужайте аудиторию или копите трафик и запускайте тест позже.
- Растягивать тест «на всякий случай» вредно: выше шанс поймать распродажу, сбой или праздники.
- Пересчитывать выборку на ходу нельзя: так вы подгоняете срок под желаемый ответ.
Рандомизация и качество теста
Единица рандомизации — то, что делится на группы. Чаще всего это пользователь: метрика считается по нему, и он же остаётся в одном варианте до конца теста. На анонимном трафике берут сессию или устройство, но тогда человек попадает в оба варианта и эффект размывается.
До старта проверяют сопоставимость групп: доли совпадают с ожидаемыми, срез по платформе, гео и источнику трафика — тоже.
- A/A-тест до запуска показывает, нет ли перекоса в самой механике разделения.
- Sample Ratio Mismatch — расхождение фактических долей с планом. Проверяется критерием хи-квадрат: если p < 0,001, тест сломан и результат читать бессмысленно.
- Кэш: пользователь увидел старую версию, а в отчёте числится в новом варианте. Проверьте, что вариант фиксируется при первом показе.
- Кросс-девайс: решите заранее, считается человек с телефона и ноутбука одним пользователем или двумя.
- Менять тест на ходу нельзя: правки в середине превращают одну гипотезу в две.
Как считать результат
Итог описывают тремя числами: абсолютная разница, относительный прирост и доверительный интервал вокруг разницы. Без интервала одна лишь цифра прироста ничего не значит.
- Абсолютный эффект — конверсия в B минус конверсия в A, в процентных пунктах.
- Относительный эффект — та же разница, делённая на базовый уровень, в процентах.
- Доверительный интервал 95 % — диапазон, в который попадает истинный эффект. Широкий интервал означает, что выборка мала.
- p-value — вероятность увидеть такую разницу, если эффекта нет. Это не вероятность того, что вариант B лучше.
- Мощность — вероятность заметить эффект, если он есть. При мощности 80 % каждый пятый реальный эффект тест пропустит.
- Значимо не значит важно: рост на 0,05 % бывает надёжным и при этом не окупает разработку.
Ошибки, из-за которых тест врёт
Большая часть провальных экспериментов ломается в процессе: кто-то посмотрел отчёт на третий день и остановил тест на удачном утре.
- Подглядывание в отчёт каждый день и остановка при первом плюсе: каждая проверка — ещё один шанс увидеть случайный всплеск.
- Множественные сравнения: пять сегментов на пять метрик дают 25 проверок, и пара из них «сработает» случайно.
- Отбор сегментов после результата: «эффект только у женщин 25–34 из Казани» — почти всегда подгонка.
- Сезонность и внешние события: распродажа, сбой в оплате, новость о компании, длинные праздники.
- Эффект новизны: на новое кликают из любопытства, и через две недели прирост тает. Смотрите динамику по неделям.
- Расхождение с прошлыми периодами: сначала проверьте логику сбора событий и метрику, потом делайте выводы.
Что делать с результатом
Решение принимают по главной метрике и guardrail, которые выбрали до старта. Исходов три: запускаем, дорабатываем, откатываем.
- Эффект в деньгах: прирост главной метрики × трафик за период × средний чек × маржа. Считайте в месяц и в год.
- Вывод для руководителя — четыре строки: гипотеза; метрика и результат с интервалом; эффект в деньгах; решение и следующий шаг.
- Спорный результат: интервал накрывает ноль, эффект меньше минимально заметного или просел guardrail — оставляйте текущий вариант.
- Главная метрика выросла, а guardrail упал — не запускаем, пока не поймём причину.
- Провальный тест — тоже знание: оформляйте его так же аккуратно, чтобы команда не проверяла гипотезу заново.
Практика: SQL, выгрузка, визуализация
Проверки лучше держать в SQL: они воспроизводимы и не зависят от интерфейса отчётов.
- Доли групп: select grp, count(distinct user_id) as users from exp_events group by grp — сравните с планом разделения.
- Главная метрика: select grp, count(distinct case when event = 'purchase' then user_id end) * 1.0 / count(distinct user_id) as cr from exp_events group by grp.
- Разбивка по неделям: добавьте date_trunc('week', event_date) в группировку и посмотрите, не тает ли эффект.
- Выгрузка в таблицу: группы, размеры, метрика, разница и интервалы — по ней считаете деньги и строите график.
- Визуализация: точка — разница между группами, усы — 95 % интервал, линия на нуле. Видно, накрывает интервал ноль или нет.
Что сделать: короткий чеклист
- Запишите гипотезу по схеме «если — то — на сколько» и зафиксируйте её до запуска.
- Выберите одну главную метрику, вторичные и guardrail-метрики.
- Посчитайте выборку и длительность, срок — кратный целым неделям.
- Определите единицу рандомизации и проверьте доли групп до старта.
- Убедитесь, что вариант фиксируется при первом показе и не теряется в кэше.
- Не смотрите промежуточные итоги и не останавливайте тест при первом плюсе.
- Соберите результат по главной метрике с интервалом и посчитайте эффект в деньгах.
- Оформите вывод из четырёх строк: запуск, доработка или откат.
Где тренировать
Темы из гайда разобраны в тестах портала — каждый вопрос с объяснением ответа:
- Статистика и A/B-тесты: 105 вопросов и 8 тем
- Проверить себя на уровне Мидл — Тесты для уровня Мидл
- Продуктовая аналитика и метрики
- Как подготовиться к собеседованию аналитика
- Стоимость подписки
Статистика в экспериментах прощает мало: аккуратный расчёт выборки, одна главная метрика и честное чтение интервала решают больше, чем красивый график. Проверьте себя: начните с бесплатной вводной темы курса «Статистика и A/B-тесты», пройдите диагностику уровня из 20 вопросов и добейте слабые места в тренажёре Proanalytics.tech — 1 443 вопроса с объяснением каждого ответа.
Диагностика из 20 вопросов покажет ваш уровень и темы, которые стоит подтянуть. Вводная тема любого курса открыта бесплатно и без регистрации.
Создать аккаунт — вводная тема бесплатна Пройти демо-тест без регистрации