Понятный ML - Статьи по машинному обучению
Назад к статьям

A/B Тестирование (A/B Testing)

Елена Капаца
8 мин

Инструмент, позволяющий принимать обоснованные продуктовые решения на основе данных

Машинное обучение

A/B-тестирование (split testing) — это мощный инструмент в арсенале дата-аналитика, позволяющий принимать обоснованные продуктовые решения на основе данных. Оно используется для оценки влияния изменений в продукте или интерфейсе на поведение пользователей и ключевые бизнес-метрики.


Что такое A/B-тестирование?

В A/B-тестировании мы случайным образом разделяем пользователей на две (или более) независимые выборки:

    • Группа A (Control) — получает текущую версию продукта (baseline).

    • Группа B (Treatment) — получает модифицированную версию (например, новую фичу или изменённый UI).

    Цель — сравнить метрики между группами и оценить, является ли различие статистически значимым.


    Ключевые термины и понятия

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

    Выбор метрик зависит от бизнес-целей. Метрики делятся на:

    • Primary metric — основная метрика, по которой принимается решение (например, Conversion Rate).

    • Secondary metrics — вспомогательные метрики, помогающие интерпретировать результат (например, Bounce Rate, Session Duration).

    • Guardrail metrics — метрики-защитники, которые не должны деградировать (например, количество жалоб, возвраты товара).

    Для проверки гипотезы используется классическая проверка значимости (hypothesis testing).
    Нулевая гипотеза H0H_0: Различий между группами нет.
    Принимается или отвергается на основе p-value и уровня значимости α\alpha, обычно 0.05.

    Также важно учитывать:

    • Statistical Power (мощность теста): вероятность обнаружить эффект, если он есть.

    • Effect Size: минимальный практически значимый эффект (например, +1% к CR).


    Пример: Улучшение CTA-кнопки в e-commerce

    Цель: Проверить, влияет ли изменение текста на CTA-кнопке (“Buy Now” → “Get Yours Now”) на конверсию в заказ.

    Дизайн эксперимента:
    • Метрика: Conversion Rate (CR) = orders / sessions

    • Population: Все пользователи сайта в течение 2 недель

    • Split: 50/50 между контрольной и тестовой группами

    Результаты:

    Группа Сессии Заказы CR (%)
    Control 10,000 1,200 12.0
    Treatment 10,000 1,320 13.2

    Вычисляем p-value с помощью Z-теста пропорций:

    Z=p1−p2p(1−p)(1n1+1n2)Z = \frac{p_1 - p_2}{\sqrt{p(1-p)(\frac{1}{n_1} + \frac{1}{n_2})}}

    Где:

    • p1=0.132,p2=0.12p_1 = 0.132, p_2 = 0.12

    • p=1,200+1,32020,000=0.126p = \frac{1,200 + 1,320}{20,000} = 0.126

    Результат: Z≈2.22Z ≈ 2.22, p≈0.026p \approx 0.026
    Так как p<0.05p < 0.05, отвергаем H0H_0: изменение статистически значимо.


    Подводные камни

    • Multiple Testing: При одновременном тестировании множества гипотез возрастает риск ложноположительных результатов. Не забывайте о корректировке (например, Bonferroni).

    • Sample Ratio Mismatch: Проверяйте, что разбиение действительно равномерное.

    • Периодические флуктуации: Избегайте запуска A/B-тестов в аномальные периоды (например, распродажи, праздники).