Привет, на связи Аслан Байрамкулов, автор курса по A/B-тестированию 👋🏻
«А t-тест ещё используют или уже всё?» — этот вопрос мне задают с завидной регулярностью. Короткий ответ: используют. Длинный интереснее, потому что вокруг него наросло изрядно мифов.
Главная путаница вот в чём. Фраза «мы перестали использовать t-тест» у разных людей значит две совершенно разные вещи, и их надо развести.
В 9 случаях из 10 она значит примерно: «Раньше мы гнали сырые данные прямо в t-тест, а теперь не гоним». И дальше начинается набор красивых слов — линеаризация, CUPED, поправки на множественность. Это не является заменой t-тесту, а всего лишь препроцессинг. В конце пайплайна всё равно может стоять t-тест, просто входные данные у него больше не сырые, а обработанные тем или иным подходом.
И в одном случае из 10 речь идёт о настоящей альтернативе — когда t-тест в принципе не отвечает на ваш вопрос. Вот этот случай уже серьёзный.
👉 Самая банальная история: человек мерит CTR и использует показы одного пользователя как независимые наблюдения. t-тест в этом случае занижает дисперсию, уровень ошибок уезжает вверх, и мы всё чаще находим эффекты там, где их нет.
👉 CUPED из той же серии. У вас есть история пользователя до эксперимента, она предсказывает его поведение в тесте. Вычитаем предсказуемую часть дисперсии, и мощность вырастает на 30-50 и порой более %. Но после CUPED всё равно стоит t-тест, и это тот же самый t-тест. Говорить «я заменил t-тест на CUPED» — примерно как сказать «я заменил двигатель на зимнюю резину».
👉 Подглядывание. В разных компаниях есть любители смотреть метрики каждый день и останавливать тест «когда p-value < 0.05», и реальный уровень ошибок уезжает к 20-30 и более % вместо заявленных 5%. Но это не баг t-теста. Это множественное тестирование во времени: вы фактически запускаете десятки тестов на накапливающихся данных. Одно из решений — последовательные методы в A/B тестировании. Но формулировка тут важная: корректируется не сам тест, а то, как вы пользуетесь его p-value.
Что касается кейсов, где t-тест действительно не подходит, то может они встречаются не столь часто, но они серьёзные. Разберу три.
☝🏻 Тяжёлые хвосты. Если вы измеряете выручку, и 1% пользователей приносит половину денег, t-тест на среднем почти бесполезен. Среднее здесь — это в основном шум от того, какой «кит» в какую группу попал. Реальный эффект в +5% на 99% пользователей спокойно прячется за одного случайного аномального клиента.
Что с этим можно делать: применять винсоризацию, логарифмирование и бутстрап для квантилей. А часто и нечто более радикальное — сменить саму метрику: мерить медиану, конверсию в платящего, ARPPU с ограничением сверху.
☝🏻 Исходные вопросы не про среднее. «Сдвинулась ли 90-я перцентиль времени загрузки?», «Изменилась ли медиана retention?». t-тест на эти вопросы просто не отвечает — он проверяет гипотезу о среднем значении, а нас могут интересовать хвост или медиана. Здесь больше помогут бутстрап и перестановочные тесты.
☝🏻 Гетерогенность. t-тест отвечает только на вопрос «сработало ли в среднем». В реальности может быть +3% в среднем, но при этом +8% на новичках и -5% на активных. И при масштабировании воздействия на всю аудиторию вы потеряете самых ценных клиентов. Никто не свяжет это с A/B-тестом, потому что «тест был положительный». Тут уже на помощь приходят мета-модели, причинные леса, аплифт-подходы.
Таким образом, «мы отказались от t-теста» — часто миф. В большинстве случаев это значит «перестали применять его на сырых данных as is», и это про грамотный пайплайн, а не про смену инструмента. Там, где t-тест действительно не подходит — есть честные альтернативы, и их стоит иметь в виду.
Не путайте эти 2 типа случаев. t-тест жив, нужно просто понимать, что он умеет, а что нет.
Если хотите разобраться более детально с этими и многими другими вопросами, то приглашаю вас на мой авторский курс, где эти темы подробно изложены в соответствующих разделах.
🟠 Записывайтесь на курс, стартуем уже в пятницу, 24 апреля: simulative.ru/ab-test
📈 Симулейтив | ВК | YouTube