A/B-тест vs мультивариантный тест — в чём разница и когда что использовать

Коротко

A/B-тест сравнивает две (или несколько) версии одного элемента: контроль vs вариант. Мультивариантный тест (MVT) проверяет все комбинации нескольких элементов одновременно. A/B-тест проще и требует меньше трафика, MVT показывает взаимодействия между элементами, но требует в разы больше пользователей.

Что такое A/B-тест

A/B-тест — эксперимент, в котором трафик случайным образом делится на группы. Каждая группа видит свою версию продукта. Результат — статистически значимая разница по целевой метрике.

Гипотеза: зелёная кнопка «Купить» повысит конверсию

Контроль (A): синяя кнопка «Купить»
Вариант (B): зелёная кнопка «Купить»

Трафик: 50/50
Метрика: конверсия в покупку

A/B-тест проверяет одно изменение за раз. Если хотите проверить два изменения — запускаете два последовательных теста или A/B/C-тест (каждый вариант — отдельное изменение).

Вариант A/B/n: тестируете больше двух вариантов (A/B/C/D), но каждый вариант — целостная версия. Требуется поправка на множественные сравнения.

Что такое мультивариантный тест

Мультивариантный тест (MVT, multivariate test) проверяет все комбинации нескольких элементов. Каждый элемент имеет несколько вариантов, и каждая комбинация — отдельная группа.

Элемент 1: цвет кнопки (синий, зелёный)
Элемент 2: текст кнопки («Купить», «В корзину»)
Элемент 3: расположение (сверху, снизу)

Комбинации: 2 × 2 × 2 = 8 вариантов
Группа Цвет Текст Позиция
1 Синий Купить Сверху
2 Синий Купить Снизу
3 Синий В корзину Сверху
4 Синий В корзину Снизу
5 Зелёный Купить Сверху
6 Зелёный Купить Снизу
7 Зелёный В корзину Сверху
8 Зелёный В корзину Снизу

MVT позволяет понять не только эффект каждого элемента, но и взаимодействия между ними. Например: зелёная кнопка лучше синей в целом, но зелёная + «В корзину» работает хуже, чем синяя + «В корзину».

Ключевые отличия

A/B-тест Мультивариантный тест
Что тестирует Одно изменение Комбинации нескольких элементов
Количество вариантов 2–4 k1 x k2 x ... x kn (растёт мультипликативно)
Требуемый трафик Умеренный Большой (пропорционален числу комбинаций)
Сложность анализа Простой (z-test, t-test) Сложный (факторный анализ, ANOVA)
Взаимодействия Не видны Видны
Длительность Дни–недели Недели–месяцы
Подходит для Большинства задач Оптимизация лендингов, email

Требования к трафику

Это главное практическое ограничение MVT. Количество комбинаций растёт мультипликативно:

A/B-тест: 2 варианта
→ Нужно ~10 000 пользователей на вариант (при MDE 5%, α=0.05, β=0.2)
→ Всего: ~20 000

MVT (2 × 2): 4 комбинации
→ ~10 000 на комбинацию
→ Всего: ~40 000

MVT (2 × 2 × 2): 8 комбинаций
→ ~10 000 на комбинацию
→ Всего: ~80 000

MVT (3 × 3 × 2): 18 комбинаций
→ ~10 000 на комбинацию
→ Всего: ~180 000

У большинства продуктов не хватает трафика для MVT. Если у вас 50 000 MAU — A/B-тест займёт неделю, а MVT с 8 вариантами — больше месяца. А длинные тесты подвержены сезонности и внешним факторам.

Эмпирическое правило: если трафик позволяет завершить MVT за 2 недели — используйте MVT. Если нет — последовательные A/B-тесты.

Когда использовать A/B-тест

  • Проверяете одну гипотезу: «новый алгоритм рекомендаций увеличит engagement»
  • Ограниченный трафик (большинство продуктов)
  • Нужен быстрый результат
  • Изменение затрагивает логику, а не визуал (бэкенд, алгоритм, цену)
  • Первый эксперимент в продукте — начинайте с простого
Примеры A/B-тестов:
- Новый алгоритм рекомендаций vs текущий
- Цена подписки 299 vs 499 руб.
- Новый onboarding-флоу vs текущий
- Push-уведомление утром vs вечером

Когда использовать мультивариантный тест

  • Оптимизируете визуальные элементы лендинга (заголовок × картинка × CTA)
  • Есть много трафика (>100 000 пользователей за период теста)
  • Подозреваете взаимодействия между элементами
  • Готовы к сложному анализу и длительному тесту
Примеры MVT:
- Лендинг: заголовок × подзаголовок × кнопка × фото
- Email-рассылка: тема × превью × время отправки
- Карточка товара: фото × цена × бейдж × отзывы

Анализ результатов

A/B-тест

from scipy import stats

# Конверсия в контроле и варианте
control_conversions, control_total = 520, 10000
variant_conversions, variant_total = 580, 10000

# z-test для пропорций
p_control = control_conversions / control_total
p_variant = variant_conversions / variant_total
p_pooled = (control_conversions + variant_conversions) / (control_total + variant_total)
se = (p_pooled * (1 - p_pooled) * (1/control_total + 1/variant_total)) ** 0.5
z = (p_variant - p_control) / se
p_value = 2 * (1 - stats.norm.cdf(abs(z)))

Мультивариантный тест

import pandas as pd
from scipy import stats

# Факторный анализ: двухфакторный ANOVA
# Фактор 1: цвет (синий/зелёный)
# Фактор 2: текст (купить/в корзину)

# Проверяем:
# 1. Главный эффект цвета
# 2. Главный эффект текста
# 3. Взаимодействие цвет × текст (самое интересное!)

from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm

model = ols('conversion ~ C(color) * C(text)', data=df).fit()
anova_table = anova_lm(model, typ=2)

Взаимодействие — это когда эффект одного фактора зависит от уровня другого. Если p-value для взаимодействия < 0.05, нельзя интерпретировать главные эффекты по отдельности.

Типичная ошибка

Запуск MVT без достаточного трафика. Тест «работает» месяц, за это время меняется сезонность, обновляется продукт, и результаты невалидны.

Вторая ошибка — использование MVT там, где достаточно последовательных A/B-тестов:

Неэффективно:
MVT: цвет × текст × позиция = 8 вариантов → 80 000 пользователей → 6 недель

Эффективно:
A/B #1: цвет (2 варианта) → 20 000 → 1 неделя → зелёный выиграл
A/B #2: текст (2 варианта) → 20 000 → 1 неделя → «В корзину» выиграл
A/B #3: позиция (2 варианта) → 20 000 → 1 неделя → сверху выиграл
Итого: 3 недели, 60 000 пользователей

Последовательные тесты быстрее и дешевле. MVT оправдан, только если вы подозреваете значимые взаимодействия между элементами.

Вопросы с собеседований

В чём разница между A/B-тестом и мультивариантным тестом? — A/B-тест проверяет одно изменение (контроль vs вариант), MVT — все комбинации нескольких элементов. A/B проще и быстрее, MVT показывает взаимодействия, но требует в разы больше трафика.

Когда вы бы выбрали MVT вместо A/B? — Когда есть достаточно трафика (>100K за период теста), когда оптимизирую визуальные элементы лендинга и подозреваю взаимодействия между ними. Например, заголовок может работать по-разному в зависимости от картинки.

Сколько трафика нужно для MVT с 3 факторами по 2 уровня? — 2³ = 8 комбинаций. При 10 000 пользователей на комбинацию — 80 000 пользователей. Для MDE 5% при базовой конверсии 5% может понадобиться больше. Калькулятор Эвана Миллера поможет рассчитать точнее.

Что такое взаимодействие (interaction effect)? — Когда эффект одного фактора зависит от уровня другого. Пример: красная кнопка с текстом «Купить» конвертит лучше, а красная с «В корзину» — хуже. Без MVT это взаимодействие не обнаружить.

Можно ли заменить MVT последовательными A/B-тестами? — Можно, если предполагаете, что взаимодействия между факторами отсутствуют или незначимы. Это быстрее и дешевле. Но если взаимодействия есть — последовательные A/B найдут локальный оптимум, а не глобальный.


Потренируйтесь решать задачи — откройте тренажёр с 1500+ вопросами для подготовки к собеседованиям аналитиков.

FAQ

Что такое full factorial и fractional factorial MVT?

Full factorial — тестируете все комбинации (2 × 3 × 2 = 12 вариантов). Fractional factorial — тестируете подмножество комбинаций, достаточное для оценки главных эффектов, но не всех взаимодействий. Fractional factorial экономит трафик, но может пропустить значимые взаимодействия высокого порядка.

Что такое Bandits и чем они отличаются от A/B-тестов?

Multi-armed bandits (MAB) — адаптивные эксперименты, которые перераспределяют трафик в пользу лучшего варианта по ходу теста. A/B-тест фиксирует разбивку 50/50 до конца. Bandits оптимизируют метрику в реальном времени, но дают менее надёжные статистические оценки. Подходят для задач оптимизации (рекомендации), не подходят для точного измерения эффекта.

MVT и A/B/n — это одно и то же?

Нет. A/B/n (A/B/C/D) — это A/B-тест с несколькими вариантами, но каждый вариант — цельная версия. MVT разделяет элементы на факторы и тестирует их комбинации. A/B/C: три целых страницы. MVT: заголовок × кнопка = 4 комбинации из компонентов.

Можно ли запустить MVT в Google Optimize?

Google Optimize закрылся в сентябре 2023. Альтернативы для MVT: VWO, Optimizely, AB Tasty. Для A/B-тестов на бэкенде: Statsig, Eppo, GrowthBook. Можно реализовать через feature flags (Unleash, LaunchDarkly).