Простой способ ускорить A/B тестирование – улучшить распределение времени между тестами.
В интернет-маркетинге, особенно при запуске стартапа, мы вынуждены проводить множество А/B тестов. Однако, математика, которую мы используем в A/B тестировании, не всегда адекватна нашим задачам.
Использование более адекватных методик тестирования не только сократит время, необходимое на тесты, но и снизит требования к матподготовке и более оптимально распределит время между между тестами.
Стандартный научный подход
Сейчас обычно используют методику тестирования, перекочевавшую в интернет-маркетинг из методики проведения научных экспериментов. Обычно ее называют стандартный научный подход проверки гипотез/теорий. Мы будем называть ее СНП.
Сама методика состоит в следующем:
- Выбираем гипотезу “Если мы поменяем цвет кнопки на красный, то конверсия улучится с 1% до 1.1%”.
- Выбираем нулевую гипотезу (альтернативу). “Смена цвета не улучшит конверсию (или вообще ухудшит).”
- Считаем число кликов, которые нужно чтобы доказать нашу гипотезу или нулевую гипотезу.
- Начинаем тест, случайным образом распределяя клики между двумя вариантами.
- Через определенное число кликов, мы оцениваем данные.
У нас может быть три исхода A/B теста:
- Гипотеза подтверждена – меняем цвет
- Гипотеза опровергнута – это не значит, что красный цвет хуже, это значит, что он дает меньше чем 1.1% конверсии.
- Ничего не понятно. Результаты не дают ни достоверного подтверждения, ни опровержения гипотезы.
Последний вариант самый интересный. Может показаться, что нужно еще подождать некоторое время, пока не станет что-то понятно. Но это не так. Нужно заново проводить тест и игнорировать старые данные.
Фундаментальная проблема СНП в том, что его цель – проверить какую-то гипотезу. Но мы проводим тесты не ради научного любопытства, а для улучшения конверсии. Это рождает целый ряд проблем:
- Мы сравниваем не варианты, а гипотезы. Хотя нам нужно выбрать вариант с лучшей конверсией.
- Сложность проведения, требования к подготовке экспериментатора.
- Мы не можем остановить тест, когда уже есть очевидный победитель. В этом случае мы бы проводили тесты быстрее и быстрее бы увеличили конверсию.
- Возможность исхода: “ничего не понятно”.
- А главное, на такой тест нужно просто астрономическое число кликов.
Число кликов
Допустим у нас есть сайт с 1000 кликов в день. Конверсия 1%, мы предполагаем, что смена цвета кнопки повысит конверсию до 1.1%. Гуглим “A/B test duration calculator” и все калькуляторы выдадут нам 515 дней. Почти 2 года.
Такие цифры получились из-за порядка цифр в интернет-маркетинге. Если мы повысим конверсию с 1% до 1.1%, то это хороший результат. А если мы изобретем лекарство, повышающее шанс выздороветь с 1% до 1.1%, то его никто не купит.
Допустим мы придумали лекарство, увеличивающее шанс выздоровления с 40% до 80%, то для его клинических испытаний нужно всего 80 человек:
Видно, что математика, заложенная в СНП, адекватна клиническим испытаниям, но не интернет-маркетингу.
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%
Схема тестирования
- Выбираем допустимую цену спешки. Например, 0.01%. Это допустимые средние потери в конверсии из-за спешки из-за того, что наше время ограничено.
- Раз в семь дней смотрим, достигли ли мы хотя бы по десять конверсий в обоих вариантах. В этом случае смотрим цену спешки. Ее можно посчитать бесплатным онлайн-калькулятором.
- Если хотя-бы у одного из вариантов цена спешки меньше целевой, то останавливаем тест и выбираем вариант, в котором выше показатель конверсии.
Пример
Допустим, у нас есть сайт с конверсией 1% и 2000 кликов в день. Выбираем необходимую для завершения теста цену спешки. Например, 0.01%. Запускаем тест.
Через неделю получаем по 7000 кликов на каждом из вариантов. У первого варианта 66 конверсий, а у второго — 73. Вводим данные в калькулятор:
Поскольку 0.0087%
Время тестирования
Время тестирования можно вычислить по очень простой формуле. Для каждого варианта в среднем нужно следующее число кликов:
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% |
Цена спешки |
14.7 ∓7 |
1.40% |
Теоретический максимум |
бесконечность |
1.46% |
Другие численные эксперименты показали, что остановка по цене спешки при любых входящих данных дает в среднем лучшую финальную конверсию, чем аналогичные методики.
Заключение
Перфоманс подход к А/B тестированию лучше существующих методик:
- Лучше распределяет время между тестами, что увеличивает скорость роста конверсии.
- Имеет более стабильное время тестирования, которое слабо зависит от отличий между вариантами.
- Нет зависаний при тестах близких к А/А.
- Более простая методика, в которой нет неприятных сюрпризов, когда тест не дает никаких результатов.
- Ниже требования к теоретической подготовке исполнителя.