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

Итак, теперь мы знаем, сколько денег можно ожидать от наших фичей. Мы выбрали самую сильную гипотезу и готовы тестировать ее в A/B — пришло время проектировать эксперимент. Дизайн эксперимента сводится к развернутым ответам на ряд вопросов, которые однозначно определяют наше поведение до, во время и после A/B-теста. Например:

  1. Какова текущая ситуация и какую бизнес-проблему мы решаем?
  2. Какую гипотезу проверяем: «Если сделать <то-то> для <такого-то пользователя>, то <метрика Z> повысится на <10(%)>, потому что <то-то>».
  3. Сколько денег компания заработает, решив эту проблему?
  4. Какой самый дешевый вариант по разработке теста?
  5. Какая выборка будет в тесте, и как будем набирать в нее пользователей?
  6. и т.д.

Пример шаблона для дизайна эксперимента с подробным списком вопросов и пояснениями.

Упражнение. Создайте себе копию шаблона с документацией эксперимента, выберите гипотезу для теста из бэклога своего продукта и ответьте на вопросы страниц 1−3. В большинстве случаев после ответа на все каверзные вопросы у вас пропадет желание проводить A/B-тест, потому что вы увидите в своей гипотезе много уязвимых мест.

Расчет выборки для A/B-теста

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

Любой A/B-тест по своей сути является проверкой статистической гипотезы. К счастью для нас, этот класс задач отлично проработали специалисты по математической статистике. Если сильно упростить, то для решения необходимо:

  1. Сформировать основную (нулевую) и альтернативную гипотезы. В A/B-тестах, как правило, за нулевую гипотезу принимают, что между вариантами A и B нет разницы, а за альтернативную — что разница есть и она вызвана именно нашей гениальной фичей.
  2. Определить статистический критерий. Это математическое правило, которое помогает нам отвергнуть или принять гипотезу. Выбор правила зависит от того, например, какое распределение имеет величина (метрика, в которую мы целимся в A/B-тесте) и сколько вариантов мы сравниваем. Подробнее выбор критерия обсудим в блоке про анализ результатов.
  3. Задать уровень значимости (обозначается α). Он определяет вероятность совершить так называемую ошибку первого рода, то есть случайно обнаружить между вариантами A и B разницу, которой на самом деле нет. За стандарт принят уровень значимости 5%.
  4. Задать мощность критерия (обозначается 1−β). Она определяет вероятность совершить ошибку второго рода, то есть случайно не заметить реально существующую разницу между вариантами A и B. Здесь обычно задают мощность в 80%, то есть вероятность совершить ошибку второго рода — 20%.
  5. Задать эффект, который мы собираемся обнаружить, то есть прогнозируемый сдвиг метрики. Чем меньше эффект, тем больше надо данных.

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

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

Чтобы не мучиться с установкой Python на ваше устройство, мы будем использовать Google Colab. Это облачный сервис, который позволяет решать задачи Data Science.

Упражнение: познакомьтесь с калькулятором размера выборки и выполните задания оттуда. Если по какой-то причине вы не можете работать в Google Colab, то для закрепления материала воспользуйтесь калькулятором Эвана Миллера. Но помните — он может подойти не для всех экспериментов.

Параметры в нем аналогичные:

  • Baseline conversion rate — текущее значение вашей целевой метрики.
  • Minimum Detectable Effect — значение, на которое вы планируете сдвинуть вашу целевую метрику в эксперименте.
  • Statistical power 1−β — статистическая мощность. Стандартом считается 80%.
  • Significance level α — уровень значимости. Стандартом считается 5%.

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



Множественные или A/B/C-тесты

Часто возникает идея сравнить больше двух вариантов — то есть провести не A/B, а так называемый множественный тест. В некоторых случаях это допустимо и оправданно, но важно держать в уме, что точность такого исследования при том же количестве наблюдений будет ощутимо ниже, потому что растет вероятность совершить ошибку первого рода. А если вы захотите сохранить изначальную точность эксперимента, то придется собирать больше данных. Расчеты таких экспериментов немного сложнее и останавливаться на них в рамках микрокурса мы не будем.

Если вам интересна эта тема — рекомендуем статью на Хабре.