Сначала зафиксируйте grain данных, допущения, метрику и риск leakage, затем обсуждайте модель, инструмент или инфраструктуру.
Вопросы и ответы
9 подробных ответов
Проверка по первоисточникам опубликована для 2 из 9 ответов. Дата и область проверки указаны у каждого проверенного ответа.
01Как устроен A/B-тест от начала до конца? Опишите ключевые этапы.
middle
Короткий ответ: A/B-тест — это рандомизированный эксперимент: пользователей случайно делят на контроль и тритмент, показывают разные версии и сравнивают одну заранее выбранную первичную метрику по фиксированному правилу решения.
Подробно:
- Гипотеза — что меняем, на какую метрику влияем и почему.
- Метрика и MDE — одна первичная метрика плюс минимально детектируемый эффект (MDE).
- Рандомизация — случайное и устойчивое разбиение на контроль/тритмент.
- Размер выборки и длительность — считаем и фиксируем до старта.
- Запуск до N — крутим до набора выборки, не подглядывая в промежуточные итоги.
- Анализ — сравниваем метрику, считаем p-значение и доверительный интервал лифта.
- Решение — выкатываем или откатываем по заранее заданному правилу.
Гипотеза → Рандомизация → Запуск до N → Анализ → Решение
│ │
контроль / тритмент выкатить ✓ / откатить ✗
⚠️ Частая ошибка: менять интерфейс по ходу теста или останавливать его в первый момент «значимости» — и то и другое ломает выводы.
02От чего зависят размер выборки и длительность A/B-теста и почему длительность фиксируют заранее?
senior
Короткий ответ: Размер выборки определяют базовая конверсия, минимально детектируемый эффект (MDE), мощность (1−β, обычно 80%) и уровень значимости α (обычно 5%): чем меньше MDE, тем больше нужно данных. Длительность фиксируют заранее, чтобы исключить подглядывание и захватить полные недельные циклы.
Подробно:
- Базовая конверсия — у редких событий дисперсия относительно выше → нужно больше выборки.
- MDE — самый сильный рычаг: выборка растёт примерно как 1/MDE².
- Мощность (1−β) — шанс заметить реальный эффект; стандарт 80%.
- α — порог ложноположительных; меньше α → больше выборка.
- Длительность — N делим на трафик в день и округляем вверх до целых недель.
# Размер выборки на группу: разница пропорций
from scipy.stats import norm
z_a, z_b = norm.ppf(0.975), norm.ppf(0.80) # α=5% (two-sided), мощность 80%
p1, p2 = 0.10, 0.11 # база 10%, MDE = +1 п.п.
var = p1*(1-p1) + p2*(1-p2)
n = (z_a + z_b)**2 * var / (p2 - p1)**2
print(round(n)) # ≈ 14 700 на группу
⚠️ Частая ошибка: не фиксировать длительность заранее и «останавливать, когда наберём значимость» — это подглядывание, раздувающее ложные срабатывания.
03Как интерпретировать результат A/B-теста: статистическая и практическая значимость, и почему незначимый результат — это не «эффекта нет»?
senior
Короткий ответ: Статистическая значимость означает p < α по заранее выбранной корректной процедуре: при нулевой гипотезе и предпосылках теста столь же или более экстремальные данные маловероятны. Это не вероятность того, что эффект «случаен» или нулевая гипотеза верна. Практическая значимость — достаточно ли пользы с учётом затрат и рисков.
Подробно:
- Эффект и интервал — сообщайте оценку, единицы и доверительный интервал. Для соответствующего двустороннего теста на уровне 5% исключение нуля из 95% интервала согласуется с отклонением нулевой гипотезы; односторонние и скорректированные процедуры требуют согласованных интервалов.
- MDE — эффект, который дизайн рассчитан обнаружить с заданной мощностью при выбранном α. Это параметр планирования, а не автоматический порог бизнес-ценности и не предел эффектов, исключённых наблюдениями.
- Незначимый результат — нулевая гипотеза не отвергнута; возможны как малая точность, так и небольшой эффект. Нельзя заключать «нужно лишь больше данных» или «эффектов ≥ MDE нет». Посмотрите, какие значения ещё совместимы с интервалом.
- Практическое решение — заранее задайте минимально полезный эффект и guardrails. Если нужно доказать отсутствие практически важного различия, используйте подходящий дизайн эквивалентности с заранее заданными границами.
Например, интервал lift [−0,5; +1,8] процентного пункта включает ноль и заметный положительный эффект; он не обосновывает утверждение «эффекта нет».
⚠️ Частая ошибка: превращать p ≥ α в доказательство нулевого эффекта или сравнивать только p-value. Обсуждайте размер, неопределённость, дизайн и бизнес-порог вместе.
04Что такое подглядывание (peeking) и почему оно раздувает долю ложноположительных результатов? Как быть с множественными сравнениями?
senior
Короткий ответ: Подглядывание (peeking) — это многократная проверка значимости по ходу теста с остановкой, как только p < 0.05. Каждая лишняя проверка — новый шанс на случайную «победу», поэтому фактический α взлетает намного выше 5%. Множество метрик/вариантов создаёт ту же проблему множественных сравнений и требует поправки.
Подробно:
- Почему peeking опасен — при многократных взглядах вероятность хоть раз пересечь порог стремится к 100%.
- Как правильно — фиксировать N и смотреть один раз; если нужны промежуточные взгляды — sequential testing / alpha-spending.
- Множественные сравнения — k метрик при α=5% дают риск ≈ 1−0.95^k; нужна поправка Бонферрони или контроль FDR (Бенджамини–Хохберг).
| Кол-во проверок | Реальный риск ложного срабатывания (α=5%) |
|---|---|
| 1 | ~5% |
| 2 | ~8% |
| 5 | ~14% |
| 10 | ~19% |
| каждый день | → стремится к 100% |
⚠️ Частая ошибка: остановить тест в первый день, когда p случайно опустился ниже 0.05.
05Как выбрать метрики для A/B-теста: чем первичная отличается от гайтрейл- и вторичных, и чем опасно «слишком много метрик»?
middle
Короткий ответ: Одна первичная метрика решает исход теста; гайтрейл-метрики страхуют, что вы не сломали что-то важное (выручку, скорость, отток); вторичные помогают понять механику эффекта. Чем больше метрик «на победу», тем выше шанс случайной значимости, поэтому набор держат коротким.
Подробно:
- Первичная — заранее выбранная, по ней принимается решение; ровно одна.
- Гайтрейл — не должна ухудшиться; блокирует выкат даже при росте первичной.
- Вторичная — для интерпретации и гипотез, не для решения.
| Тип | Роль | Пример | Решает исход? |
|---|---|---|---|
| Первичная | критерий успеха | конверсия в покупку | да |
| Гайтрейл | защита от вреда | latency, выручка, отток, жалобы | блокирует выкат |
| Вторичная | объяснение механики | CTR, глубина сессии | нет |
⚠️ Частая ошибка: набрать десяток метрик «на победу» и объявить успех по той, что случайно загорелась — это скрытое множественное сравнение.
06Какие угрозы валидности подстерегают A/B-тест и что такое SRM?
senior
Короткий ответ: Валидность ломают перекос распределения по группам (SRM — sample ratio mismatch), эффекты новизны/первичности, сетевые эффекты (тритмент влияет на контроль) и сезонность. SRM — красный флаг сломанного эксперимента: результатам нельзя доверять, пока не найдена причина расхождения.
Подробно:
- SRM — фактический сплит значимо отличается от ожидаемого (проверяют χ²-тестом); признак бага в рандомизации, логировании или фильтрации.
- Новизна/первичность — реакция меняется со временем: новинку либо тыкают из любопытства, либо отвергают по привычке.
- Сетевые эффекты — группы не изолированы (соцсети, маркетплейсы), эффект «протекает».
- Сезонность — день недели, акции, праздники искажают короткие тесты.
| Угроза | В чём проблема | Как смягчить |
|---|---|---|
| SRM | сплит ≠ ожидаемому | χ²-тест на старте; не анализировать до исправления |
| Новизна/первичность | эффект дрейфует во времени | дольше крутить, смотреть динамику по дням |
| Сетевые эффекты | группы влияют друг на друга | кластерная/гео-рандомизация |
| Сезонность | внешние циклы | полные недельные циклы, не обрывать рано |
⚠️ Частая ошибка: увидеть «значимый» результат и не проверить SRM — при перекосе групп сравнение изначально невалидно.
07Как правильно читать сегментированный результат A/B-теста и что такое парадокс Симпсона?
middle
Короткий ответ: Агрегированный результат может перевернуться внутри сегментов (парадокс Симпсона), когда сегменты сильно разного размера и по-разному реагируют. Но нарезка постфактум на десятки сегментов — это скрытое множественное сравнение: что-нибудь «значимое» найдётся случайно.
Подробно:
- Парадокс Симпсона — направление эффекта в каждом сегменте противоположно итогу из-за несбалансированного распределения по группам (часто следствие SRM).
- Slicing до значимости — чем больше срезов, тем выше шанс ложного открытия; сегменты для решения фиксируют заранее.
- Что делать — заранее задать ключевые сегменты, на остальное смотреть как на генерацию гипотез, а не как на вывод.
| Сегмент | Контроль | Тритмент |
|---|---|---|
| Mobile | 8% (8/100) | 9% (90/1000) |
| Desktop | 30% (300/1000) | 33% (33/100) |
| Итого | 28% (308/1100) | 11% (123/1100) |
В каждом сегменте тритмент лучше, а в сумме — хуже: группы перекошены по платформам.
⚠️ Частая ошибка: нарезать данные, пока какой-нибудь сегмент не покажет p < 0.05, и выдать это за результат.
08Что делать, если нельзя рандомизировать пользователей: чем различаются switchback, geo-эксперименты и квазиэксперименты?
senior
Короткий ответ: Невозможность рандомизации по пользователям не исключает рандомизированный эксперимент. В switchback можно случайно назначать режим временным блокам, в geo-тесте — регионам. Difference-in-differences и synthetic control обычно используют наблюдательные сравнения и требуют дополнительных предпосылок для причинной интерпретации.
Подробно:
| Метод | Идея | Главные условия |
|---|---|---|
| Рандомизированный switchback | случайное назначение режима временным блокам, иногда внутри регионов | учесть carryover, washout и зависимость соседних блоков |
| Рандомизированный geo/cluster test | случайное назначение регионам/кластерам | достаточно кластеров; анализ соответствует единице рандомизации; оценить spillover |
| Difference-in-differences | сравнить изменение test и control до/после | параллельные контрфактические тренды, отсутствие связанных вмешательств и предвосхищения |
| Synthetic control | построить взвешенный контроль из других единиц | подходящие доноры, хороший fit до вмешательства и отсутствие загрязнения контроля |
- Сначала определите единицу назначения и схему случайного выбора. Само слово «switchback» или «geo holdout» ещё не доказывает рандомизацию.
- Сетевые эффекты и перенос эффекта во времени могут нарушить независимость; washout уменьшает, но не автоматически устраняет carryover.
- Не считайте каждого пользователя независимой единицей, когда назначение сделано регионам или временным блокам. Неопределённость должна учитывать дизайн.
⚠️ Частая ошибка: называть все альтернативы пользовательскому A/B квазиэкспериментами. Разделяйте рандомизацию и наблюдательную идентификацию, а силу вывода обосновывайте конкретными предпосылками.
Источники
Источники и редакционная политика
Ссылки на источники помогают изучить тему глубже. Если для ответа опубликована техническая проверка, рядом указаны её дата и область. Мы не связаны с упомянутыми работодателями и не продаём места в подборках. Источники, функции сервисов и формат найма могут меняться.
От чтения к воспроизведению
Отрепетируйте полный цикл интервью.
RecallDeck возвращает сложные темы по расписанию и помогает удерживать в памяти язык, SQL, архитектуру и поведенческие истории.