Proanalytics.tech

Как посчитать A/B-тест: выборка, длительность и чтение результата

11 мин чтения 8 разделов

Путь эксперимента — от гипотезы до решения «запускать или откатывать». С формулами словами, 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-тесты», пройдите диагностику уровня из 20 вопросов и добейте слабые места в тренажёре Proanalytics.tech — 1 517 вопросов с объяснением каждого ответа.

Проверьте себя

Диагностика из 20 вопросов покажет ваш уровень и темы, которые стоит подтянуть. Вводная тема любого курса открыта бесплатно и без регистрации.

Вопросы

Частые вопросы

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

Минимум одну полную неделю, чаще две: срок зависит от выборки и бизнес-цикла и редко укладывается в пару дней.

Можно ли остановить тест раньше, если вариант выигрывает?

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

Что делать при Sample Ratio Mismatch?

Не читать результат. Проверьте логику разделения, выгрузку событий и кэш: доли разъезжаются из-за ботов, дублей или потери событий.

Чем относительный эффект отличается от абсолютного?

Абсолютный — разница в процентных пунктах, относительный — в процентах от базового уровня. Рост с 10 % до 11 % это плюс 1 процентный пункт и плюс 10 % относительно.

Что делать, если результат спорный?

Оставляйте текущий вариант, зафиксируйте, чего не хватило, и запускайте новый тест с уточнённой гипотезой.

Ещё по теме

Другие гайды

Как подготовиться к собеседованию аналитика: план по шагам и срокам Что делать, если не знаешь ответ на собеседовании С чего начать в аналитике: направления, порядок обучения и план первых недель Вопросы на собеседовании системного аналитика: блоки, примеры и логика ответа Вопросы на собеседовании бизнес-аналитика: блоки, примеры и логика ответов Вопросы на собеседовании продуктового аналитика: блоки, примеры и логика ответов Вопросы на собеседовании аналитика данных: блоки и задачи Собеседование джуна аналитика: чего ждут и как отвечать Собеседование на Мидл-аналитика: блоки вопросов, логика ответов и кейсы Собеседование на Сеньор аналитика: что проверяют и как отвечать SQL задачи на собеседовании: типы, логика решения и типичные ошибки Кейсы на собеседовании аналитика: как разбирать и отвечать по шагам Кейсы системного аналитика: 8 рабочих ситуаций с логикой решения Как читать чужой SQL запрос: пошаговый разбор Ошибки в отчётах: как найти расхождение и перестать терять доверие к цифрам Первая неделя работы аналитика: спокойный план действий Как подготовиться к тестовому заданию аналитика Метрики продукта: с чего начать Как вести документацию аналитика Собеседование без опыта: план на месяц ИИ и системный аналитик: что делать, чтобы не заменили MCP: что это и как настроить аналитику Требования к ИИ-агенту: спецификация, guardrails и метрики Как собрать своего агента аналитику: пошагово Языковые модели для аналитика: минимум понятий Аналитик данных с нуля: что учить по шагам Системный аналитик с нуля: что учить и в каком порядке Бизнес-аналитик с нуля: с чего начать и что учить