Самое время скрестить пальцы. Совсем скоро мы узнаем, прошла ли наша гипотеза проверку на прочность.
Но здесь нас поджидает еще одна крупная потенциальная ошибка.
Допустим, запуская тест, вы заранее сделали ставку на какой-то из вариантов, вы болеете за него, как за лошадь на скачках. И пока тест идет, вы ненароком подглядываете, как там дела у метрик теста. В какой-то момент может возникнуть соблазн: кажется, наш фаворит действительно впереди, останавливаем тест, тут все понятно. Вот это и есть ошибка!
Такая проблема называется peeking problem, или проблема подглядывания. Многие ее допускают, и статистически доказано, что делать это неправильно. Вы же не останавливаете футбольный матч через 15 минут. И не останавливаете, если какая-то команда забила первый гол (к правилу золотого гола это не относится). Так давайте же дождемся окончания матча – простите, теста, – чтобы удостовериться в том, что тест действительно прошел правильно.
Настало время поговорить о статистической значимости. Она, как финальный босс, явно или неявно сопровождает нас всю книгу.
Допустим, в каждой из групп теста по 50 человек. И вы замеряете их среднее время сессии. У группы A получилось 3 минуты, а у группы B – 3 минуты и 3 секунды. Значит ли это, что группа B несет в себе такое изменение, которое действительно изменит длину сессии для всех в будущем? Вовсе нет.
Начиная с какого объема выборки или начиная с какой длины сессии мы сможем сказать: «Да, скорее всего, группа B действительно лучше»?
Тут нужна некая мера уверенности в том, что результаты теста на маленькой выборке впоследствии сработают на всю массу пользователей. А вслед за ней и мера того, что мы можем ошибиться. Такая мера и называется статистической значимостью. Чем она меньше, тем лучше, потому что тем меньше вероятность нашей ошибки по итогам теста.
Как правило, значимость устанавливают на уровне 10 %, 5 %, 1 %, 0,1 %. Конечно, чем ниже мера ошибки, тем лучше и надежнее, но тем труднее в реальности ее достичь.
Существует два подхода к статистической значимости: частотный и байесовский.
В вузах, как правило, изучают частотный подход: нулевая гипотеза H0, альтернативная гипотеза H1, ошибки первого и второго родов, а на выходе – значение p-value. Чем оно меньше, тем лучше. Тем меньше вероятность ошибиться с результатами теста.
В последнее время все больше популярен байесовский подход. Он несколько иначе определяет и статистику, и вероятность (например, уже на второй-третьей странице в книжках про метод Байеса появляется понятие «вероятность вероятности»). Вероятность в нем определяется субъективно и считается до теста и после теста – так называемые априорная и апостериорная вероятности.
Байесовский метод труднее в расчетах и понимании, там очень сложные формулы, но зато он прост в трактовке результатов теста: мы просто получаем на выходе вероятность «победы» каждого варианта.
Также преимуществами байесовского метода является нетребовательность (в отличие от частотного подхода) к распределению данных. Вообще, для него обычно достаточно выборки меньшего размера.
Выбирайте сами, что вам ближе.
Но я сразу скажу, что для обоих методов существуют онлайн-калькуляторы, и я вовсе не против, чтобы вы ими пользовались. Главное – держать в голове все вышеупомянутые нюансы.
Устали от статистики? Подождите уходить!
Мы еще не поговорили о биномиальных и небиномиальных метриках. Но тут все просто: биномиальные – это те метрики, которые, грубо говоря, «либо да, либо нет». Пользователь либо вернется на седьмой день, либо нет – метрика Retention биномиальная. Пользователь либо заплатит, либо нет – метрика конверсии в платеж также биномиальная.
Небиномиальные – это такие метрики, которые измеряются не в процентах, а в деньгах, минутах, какой-то непрерывной единице измерения. Например, это метрики ARPU, LTV и длины сессии.
Нам важно понимать про каждую метрику, биномиальная она или нет, потому что для них требуются разные статистические методы.
Итого, статистика A/B-тестов сводится к двум классификациям: частотный и байесовский подходы, биномиальные и небиномиальные метрики.
Как видим, самый сложный случай – это байесовский подход с небиномиальными метриками, и на момент написания этой книги по нему почти нет материалов на русском языке. Зато есть пакет PyMC3 на Python.
Резюмируем статистическую часть: решаем про то, какой подход нам использовать, классифицируем метрики на биномиальные и небиномиальные, а дальше идем и ищем онлайн-калькулятор. Либо (если умеете) идем и подгружаем нужный нам пакет в Python – не руками же нам это считать?
В A/B-тестах можно много где ошибиться, и я призываю вас не делать этого.
Какие могут быть ошибки?
– Неправильные гипотезы и недостаточно заметные изменения. Вы уже поняли, что чем меньшее изменение мы хотим поймать, тем больше пользователей нам нужно. А чем меньше у нас пользователей в тесте, тем бо́льшие изменения мы должны закладывать в тест. Но далеко не всегда вы можете придумать что-то такое, что по щелчку поднимет вам Retention с 30 до 40 %. А значит, надо искать баланс, и вот тут можно ошибиться в ту или иную сторону.
– Выгодная трактовка результатов эксперимента. Тут чаще всего случается та самая ошибка подглядывания: «И так все понятно». Чтобы не ошибиться, дождитесь окончания теста. И да, здесь лучше забыть про интуицию!
– Ошибки с аудиторией. Слишком мало пользователей, либо пользователи не те (например, они уже видели этот функционал), либо аудитории доверять нельзя, а вы не проверили это AA-тестом.
Еще пара нюансов.
Можно ли запускать несколько тестов одновременно?
Вообще говоря, ошибкой это не является, и я встречал компании, которые гоняли по 12 тестов одновременно, но надо быть осторожным. Иногда изменения, которые вы тестируете, могут накладываться друг на друга, меняя для игрока игру в совершенно новую, не предсказанную вами, сторону. И отследить это изменение статистическим инструментом A/B-тестов очень трудно. А потому, если хотите запустить несколько тестов, то запускайте – но постарайтесь, чтобы они меняли разные, логически как можно более удаленные друг от друга элементы игры.
Красна ли кнопка, пока мы ее не видим? Точнее, не так. Если сегодня в тесте победила красная кнопка, значит ли это, что через месяц победит она же? Вообще говоря, не факт, и периодически (когда аудитория игры поменяется этак на 90 %) есть смысл перепроверять результаты теста. Если что-то сработало у кого-то одного, то нет гарантии, что это сработает и у вас. Более того, нет гарантии, что у вас сработает то же, что срабатывало у вас раньше, – слишком быстро меняются и игра, и аудитория.