7 Июня 2016 в 10:54

Математика A/B тестирования

1 4390
Андрей Белоусов
CEO,
HTraffic

Простой способ ускорить A/B тестирование – улучшить распределение времени между тестами.

В интернет-маркетинге, особенно при запуске стартапа, мы вынуждены проводить множество А/B тестов. Однако, математика, которую мы используем в A/B тестировании, не всегда адекватна нашим задачам.

Использование более адекватных методик тестирования не только сократит время, необходимое на тесты, но и снизит требования к матподготовке и более оптимально распределит время между между тестами.

Стандартный научный подход

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

Сама методика состоит в следующем:

  • Выбираем гипотезу “Если мы поменяем цвет кнопки на красный, то конверсия улучится с 1% до 1.1%”.
  • Выбираем нулевую гипотезу (альтернативу). “Смена цвета не улучшит конверсию (или вообще ухудшит).”
  • Считаем число кликов, которые нужно чтобы доказать нашу гипотезу или нулевую гипотезу.
  • Начинаем тест, случайным образом распределяя клики между двумя вариантами.
  • Через определенное число кликов, мы оцениваем данные.

У нас может быть три исхода A/B теста:

  • Гипотеза подтверждена – меняем цвет
  • Гипотеза опровергнута – это не значит, что красный цвет хуже, это значит, что он дает меньше чем 1.1% конверсии.
  • Ничего не понятно. Результаты не дают ни достоверного подтверждения, ни опровержения гипотезы.

Последний вариант самый интересный. Может показаться, что нужно еще подождать некоторое время, пока не станет что-то понятно. Но это не так. Нужно заново проводить тест и игнорировать старые данные.

Фундаментальная проблема СНП в том, что его цель – проверить какую-то гипотезу. Но мы проводим тесты не ради научного любопытства, а для улучшения конверсии. Это рождает целый ряд проблем:

  • Мы сравниваем не варианты, а гипотезы. Хотя нам нужно выбрать вариант с лучшей конверсией.
  • Сложность проведения, требования к подготовке экспериментатора.
  • Мы не можем остановить тест, когда уже есть очевидный победитель. В этом случае мы бы проводили тесты быстрее и быстрее бы увеличили конверсию.
  • Возможность исхода: “ничего не понятно”.
  • А главное, на такой тест нужно просто астрономическое число кликов.

Число кликов

Допустим у нас есть сайт с 1000 кликов в день. Конверсия 1%, мы предполагаем, что смена цвета кнопки повысит конверсию до 1.1%. Гуглим “A/B test duration calculator” и все калькуляторы выдадут нам 515 дней. Почти 2 года.

ab тестирование.png

Такие цифры получились из-за порядка цифр в интернет-маркетинге. Если мы повысим конверсию с 1% до 1.1%, то это хороший результат. А если мы изобретем лекарство, повышающее шанс выздороветь с 1% до 1.1%, то его никто не купит.

Допустим мы придумали лекарство, увеличивающее шанс выздоровления с 40% до 80%, то для его клинических испытаний нужно всего 80 человек:

тестирование.png

Видно, что математика, заложенная в СНП, адекватна клиническим испытаниям, но не интернет-маркетингу.

Lean-подходы

Проблемы СНП породили множество различных подходов. Основная черта которых – остановка теста при достижении какого-то условия. Например, шанса побить равного 95%.

Среди метрик остановки могут быть:

  • шанс побить,
  • p-value,
  • статистическая значимость,
  • доверительные интервалы.

Эти метрики выражают примерно одно и тоже – вероятность того, что один вариант лучше другого. Но они не учитывают на сколько лучше. Все эти метрики качественные (вероятностно-качественные), а не количественные.

Например, если конверсия одного варианта равна 1%, а второго 1.000001%, то нам по большому счету все равно, какой вариант выбрать. Однако, такие тесты при lean-подходе могут длиться очень долго. A/A тест может длиться бесконечно долго. Из-за чего на тесты, не повышающие нашу конверсию, мы тратим неоправданно много времени.

Все это рождает целый ряд проблем:

  • Время между тестами распределяется не оптимально,
  • Тест может “зависнуть”,
  • Сильный разброс во времени проведения тестов.

Perfomance-подход

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

Основа перфоманс-подхода в том, что нужно выбрать цель, адекватную бизнес-задачам. Например, увеличить конверсию.

Цена спешки

Нам нужно ввести количественный показатель. Это одно из главных требований перфоманс-подхода в принципе.

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

Поэтому существует вероятность ошибки (1 – шанс_побить). Шанс побить – это качественная метрика, и нам нужно учесть, как сильно вредит конверсии наша ошибка. Нужно помножить вероятность ошибки на ожидаемые потери от нее. Назовем это число "ценой спешки".

Цена спешки – это ожидаемые потери при остановке теста сейчас по сравнению с бесконечно долгим тестом. Т.е. продолжение теста улучшит конверсию в среднем не более чем на цену спешки.

Допустим, мы откуда-то узнали, что с вероятностью в 50% у варианта А конверсия равна 9% и с вероятностью в 50% равна 20%. А у варианта B равновероятны следующие конверсии 10% и 11%. Какова цена спешки у А, т.е. ожидаемые потери при выборе варианта A?

Получим 4 равновероятный комбинации

A

B

Потери

9%

10%

1% (10%-9%)

9%

11%

2% (11%-9%)

20%

10%

0 (20%>10%)

20%

11%

0 (20%>11%)

В среднем потери составляют (1%+2%)/4 = 0.75%

Схема тестирования

  1. Выбираем допустимую цену спешки. Например, 0.01%. Это допустимые средние потери в конверсии из-за спешки из-за того, что наше время ограничено.
  2. Раз в семь дней смотрим, достигли ли мы хотя бы по десять конверсий в обоих вариантах. В этом случае смотрим цену спешки. Ее можно посчитать бесплатным онлайн-калькулятором.
  3. Если хотя-бы у одного из вариантов цена спешки меньше целевой, то останавливаем тест и выбираем вариант, в котором выше показатель конверсии.

Пример

Допустим, у нас есть сайт с конверсией 1% и 2000 кликов в день. Выбираем необходимую для завершения теста цену спешки. Например, 0.01%. Запускаем тест.

Через неделю получаем по 7000 кликов на каждом из вариантов. У первого варианта 66 конверсий, а у второго — 73. Вводим данные в калькулятор:

калькулятор.png
Поскольку 0.028%>0.01%, то мы продолжаем тест. И через неделю снова вводим данные в калькулятор:

калькулятор1.png

Поскольку 0.0087%<0.01%, то мы прекращаем тест и выбираем второй вариант.

Время тестирования

Время тестирования можно вычислить по очень простой формуле. Для каждого варианта в среднем нужно следующее число кликов:

100 * Конверсия/цена спешки

Например, если у нас конверсия равна 1%, а цена спешки 0.01%, то получаем 100*(1/0,01)=10.000. Для каждого варианта нужно по 10 тыс. кликов.

Сравнение эффективности

Наше время ограничено, причем у нас есть несколько изменений, которые нужно проверить. Поэтому задачу А/Б тестирования можно свести к оптимальному распределению времени между тестами.

С помощью R-Studio я провел 100.000 серий по 3 A/B теста, чтобы протестировать оптимальное условие остановки.


Недели

Финальная конверсия

Каждый тест длится 5 недель

15 ∓0

1.37%

Шанс побить > 80%

14.8 ∓24

1.37%

Цена спешки < 0.02%

14.7 ∓7

1.40%

Теоретический максимум

бесконечность

1.46%

Другие численные эксперименты показали, что остановка по цене спешки при любых входящих данных дает в среднем лучшую финальную конверсию, чем аналогичные методики.

Заключение

Перфоманс подход к А/B тестированию лучше существующих методик:

  1. Лучше распределяет время между тестами, что увеличивает скорость роста конверсии.
  2. Имеет более стабильное время тестирования, которое слабо зависит от отличий между вариантами.
  3. Нет зависаний при тестах близких к А/А.
  4. Более простая методика, в которой нет неприятных сюрпризов, когда тест не дает никаких результатов.
  5. Ниже требования к теоретической подготовке исполнителя.
1 комментарий
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Поделиться 
Поделиться дискуссией:
  • Вадим
    1
    комментарий
    0
    читателей
    Вадим
    1 месяц назад
    Я так понимаю конверсия рассматривается как случайная величина с нормальным распределением. Тогда каким образом определяется СКО?
    -
    0
    +
    Ответить
    Поделиться

Отправьте отзыв!
X | Закрыть