Программы
Подготовка к собеседованиямA/B-тесты для аналитиковML и Causal InferenceA/B-тесты для менеджеровОбучение для команд
Бесплатные материалы
База знаний185+ тестовых заданийRoadmap по A/BЧеклист A/B-тестаОтзывыО проектеОставить заявку
A/B-тесты и статистика

Как проводить A/A-тесты?

22 апреля 2024·2 мин чтения·Павел Бухтик·Оригинал в Telegram ↗

Основная цель A/A-тестов – убедиться в корректности системы сплитования. Я знаю, что люди реализуют А/А тесты очень по-разному. Но далеко не все задумываются о проблемах, с которыми они могут столкнуться от той или иной реализации. Давайте сегодня разберем основные из них:

А/А-тест на проде

Это, условно, тот же A/B-тест, где ветка B ничем не отличается от А. Такой вид А/А, по моим ощущениям, наиболее популярен среди аналитиков.

Но он не является оптимальным. Ведь что если мы получим ошибку 1 рода? Тогда мы будем вынуждены разбираться по сути с корректно работающей системой.

A/A/B-тест на проде

Здесь А/А проводится параллельно настоящему тесту. Такая конфигурация используется, когда нам нужно выдерживать временные окна у метрик, или когда не хотим раскатывать 50-50, или же чтобы эффективнее попадать в релизные циклы.

Встречается реже, но вероятность получить ошибку 1 рода все еще остается.

Более оптимальным вариантом является следующий:

Симуляция А/А-теста на истории.

Пусть наш объект сплитования – это user_id. Тогда мы можем:

1. Взять N недель исторических данных; 2. Согласно реализации нашей системы сплитования (например, с помощью хеш-фукнции и солей), разделить всех user_id на две группы 1000 раз; 3. Для некоторой метрики и стат. теста оценить p-value на каждой итерации; 4. Построить распределение полученных p-value.

Если система сплитования работает корректно – распределение должно получиться равномерным (можно проверить с помощью теста Колмогорова-Смирнова).

Но и здесь есть одно но. Это всего лишь симуляции. Такой А/А может не иметь ничего общего с продом.

Эту проблему решает следующая реализация:

Симуляция А/А-теста на проде.

Важно делать это прямо на проде, потому что именно прод-версия будет дальше сплитовать все тесты.

Для этого мы можем «попросить» нашу сплитовалку провести 1000 А/А тестов. Т. е. чтобы сама система сплитования разделила нам пользователей 1000 раз на тест и контроль. А дальше либо проверить равномерность распределения p-value на истории по аналогии со способом выше, либо уже на новых данных.

Если у вас собственная система сплитования – это сделать легче. С внешней системой сплитования можно провернуть это через её API.

По-моему опыту, единственный надежный способ проверить систему сплитования для A/B-тестов – симуляции А/А-тестов прямо на проде. Только так вы можете по-настоящему гарантировать её корректность.

Хочешь глубже разобраться в аналитике?

Посмотри программу курса по продуктовой аналитике и экспериментам.

Смотреть курс