Как в 5-10 раз ускорить А/Б тест?

01.10.2018
1507 0
Категория: Web-аналитика Теги:

Новый подход к А/Б тестам

Из этой статьи вы узнаете как многократно сократить время А/Б теста. Кроме скорости у новой методики тестирования есть и другие преимущества.

Трудно представить интернет-маркетинг без проведения А/Б тестов. Одна из основных проблем А/Б тестирования — когда остановить тест. Если мы остановим тест слишком рано, то мы можем выбрать вариант, которому просто повезло. Если остановить тест слишком поздно, то мы потратим слишком много времени, которое мы могли бы использовать на проведение других тестов.

Сейчас остановка теста происходит при достижении определенной статистической достоверности. Для оценки достоверности,  обычно, используется одна из следующих метрик:

  • Доверительные интервалы
  • p-value
  • Шанс побить

Вероятность и показатель конверсии

Вероятность и показатель конверсии это две больших разницы. Если у нас был 1 клик и 0 конверсий, то показатель конверсии нулевой. Но это не значит, что и вероятность тоже нулевая и никто никогда не сконвертируется.

С ростом числа кликов показатель конверсии стремится к вероятности. И при бесконечном числе кликов вероятность и показатель будут равны. Но на практике у нас нет бесконечного времени на проведение теста.

Далее вместо “вероятность конверсии” мы будем говорить просто “конверсия”.

Проблемы

Старые метрики (доверительные интервалы, p-value и шанс побить) были придуманы для ученых, для которых важно удовлетворить научное любопытство или доказать, что какой из вариантов лучше.

Однако, эти метрики плохо подходят для интернет-маркетинга, в котором у нас совсем другая задача — повысить конверсию.

Также эти метрики могут “зависать”. Если варианты в тесте почти не отличаются друг от друга, то тест идет очень долго. Если варианты вообще не отличаются друг от друга (А/A тест), то тестирование будет идти бесконечно долго.

Все это приводит к целому ряду проблем:

  1. Тесты идут очень долго. Особенно те, которые не приносят заметной пользы. Это время мы можем потратить на более значимые тесты.
  2. Непонятно сколько тест продлиться. Это рождает массу проблем при планировании работ.
  3. Значительная часть тестов останавливается до достижения запланированной статистической значимости. Это нарушает объективность тестирования.

Примеры

Возьмем типовой сайт с 1000 посетителей в сутки и конверсией в 1%. Допустим, мы придумали способ увеличить конверсию до 1.1%. Сколько времени займет А/Б тест?

Ответ: пару лет! Не верите мне? Наберите в Google “A/B test duration calculator” все калькуляторы вам выдадут для 80% достоверности 317 дней, а для  95% — 515!


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

Цена спешки

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

Нужно перестать оценивать статистические метрики (значимость, вероятность) и вернуться к первоначальной цели — улучшению конверсии.

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

Старые метрики основаны на вероятности этой ошибки. Однако ошибки бывают разными, если в одном варианте конверсия равна 1%, а во втором — 1.00001%, то ошибка никак на нас не повлияет.

Цена спешки это ожидаемая разница в конверсии между идеальным бесконечным тестом и выбором варианта, у которого сейчас лучший показатель конверсии. Цена спешки показывает сколько в среднем конверсии “скрывается” в тесте.

Допустим у нас есть 2 варианта. Их конверсиии a и b. Мы не знаем a и b, но можем судить о этих числах с некоторой точностью, по показателю конверсии. Если мы выбирем вариант a и a>b, то мы ничего не потеряем. В противном случае мы потерям z=b-a конверсии. Нужно вероятность ошибки умножить на потери при ней и мы получим оценку потерь:

Цена спешки у А = M[z>0] * P[z>0]

Где

  • z=a-b
  • M[z>0] матожидание z для всех z>0. Грубо говоря средний z, если не считать отрицательные значения
  • P[z>0] вероятность того, что z>0. Другими словами, шанс варианта Б побить вариант А.

Для сравнения шанс побить у А = P[z<0] = 100% — P[z>0]. Легко видеть что цена спешки учитывает не только вероятность ошибки, но и размер потерь, которые приносит ошибка.

Пример

Допустим, мы откуда-то узнали, что с вероятность 50% у варианта А конверсия равна 1%, а и с вероятностью 50% = 1.1%. У варианта Б равновероятны конверсии 0.9% и 2%.

У нас получается равновероятны 4 случая (комбинации):

Случай Вариант А Вариант Б
1 1% 0.9%
2 1% 2%
3 1.1% 0.9%
4 1.1% 2%

Шанс побить 50 на 50. Вариант А лучше в 2 комбинациях (1 и 3), вариант Б в комбинациях 2 и 4.

Предположим, что нам предложили за 1500$ сказать точно какой из вариантов лучше. Чтобы понять стоит ли сделка, нужно понять какой ущерб наносит нам недостаток информации.

Посчитаем цену спешки. Если мы выберем вариант А, то в первом случае мы ничего не потерям (поскольку в этом случае вариант А лучше Б). Во втором — мы потеряем 1% (2%-1%) конверсии….

Случай Конверсия Потери
Вариант А Вариант Б При выборе А При выборе Б
1 1% 0.9% 0 (0.9%<1%) 0.1% (1%-0.9%)
2 1% 2% 1% (2%-1%) 0 (1%<2%)
3 1.1% 0.9% 0 (0.9%<1.1%) 0.2% (1.1%-0.9%)
4 1.1% 2% 0.9%(2%-1.1%) 0 (1.1%<2%)
В среднем 1.05% 1.45% 0.475% 0.15%

 

Если мы выберем вариант Б, а не узнаем какой из вариантов лучше, то в среднем мы теряем 0.15% конверсии. Эти потери возникают из-за того, что мы не знаем какой вариант лучше. Это и есть цена спешки.

Теперь вернемся к сделке. Если на сайте 1000 кликов в день, то дополнительные 0.15% конверсии дадут нам 1.5 конверсии в день. Если ценность конверсии для нас 100$, то это дополнительные 150$ в день. Таким образом, инвестиция в 1500$ отобьется за 10 дней.

Реальный пример

Допустим у нас в двух вариантов было по 10.000 кликов. В варианте А было 100 конверсий, в  Б — 110.

Скриншот из моего бесплатного онлайн калькулятора.

Мы получаем шанс побить в 76%, а цена спешки — 0.02%. Т.е. если завешить тест сейчас и выбрать второй вариант, то ожидаемые потери в конверсии будут всего 0.02% по сравнению с бесконечно долгим тестом.

Сравнение методик

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

Допустим у нас есть три гипотезы, которые нужно проверить (провести серию из А/Б тестов). Часть гипотез улучшает конверсию, часть улучшает. Также у нас есть сайт с изначальной конверсией в 1% и 2000 кликов в неделю.

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

Недели Финальная конверсия
Каждый тест длится 5 недель 15    ∓0 1.37%
Шанс побить > 80% 14.8  ∓24 1.37%
Цена спешки < 0.02% 14.7  ∓7 1.40%
Теоретический максимум бесконечность 1.46%

Как видно, у “цены спешки” выше эффективность и более стабильное время работы.

Также можно заметить, что мы предсказали различия между теоритическим максимумом и финальной конверсией 1.46%- 1.40% = 0.06%. Три опыта в каждом из которых цена спешки была равна 0.02% = 3 * 0.02%=  0.06%.

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

Стабильность времени тестирования

Численные эксперименты показали, что время тестирования почти не зависит от разницы в конверсии между двумя вариантами.

Формула необходимого числа кликов на каждый из вариантов для завершения теста довольно простая: Число кликов=100*Конверсия *(1-Конверсия) / Цена_спешки

Для конверсии < 10% формулу можно упростить до число кликов=100*Конверсия/Цена_спешки.  Например, у нас на сайте конверсия=1%, мы задали цену спешки в 0.01%. Получим: 100*1%0.01%=100 * 100 = 10000

Т.е. в среднем для теста нужно 10 тыс кликов. Если у нас 1000 кликов в день (по 500 на каждый вариант), то тест займет 10000/500=20 дней.

Пример А/B теста

Допустим у нас есть сайт с конверсией 1% и 2000 кликов в день. Мы сравниваем 2 варианта. Выбираем необходимую для завершения теста цену спешки как 1/100 от конверсии. Целевая цена спешки равна 1%/100=0.01%.

Запускаем тест. Данные нужно снимать раз в 7 дней, поскольку вариант который хорошо работает в понедельник может плохо работать в субботу.

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

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

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

Заключение

Цена спешки — это ожидаемые потери в конверсии при остановке эксперимента сейчас.

Это метрика более адекватна интернет-маркетингу  чем остальные:

  • Она требует меньшее число кликов
  • Время тестов более стабильно
  • Распределение недель между тестами более оптимально

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

//добавляем само поле //заполняем его текущей меткой времени через Javascript

Метки