A/B Test Simulator (Live) — Описание

Живая симуляция A/B-теста во времени: пользователи приходят потоком, распределяются в Control и Test, генерируют события и деньги, а метрики и p-value “плывут” по мере накопления выборки. Цель — увидеть не «ответ в конце», а динамику: как нестабильны uplift и p-value на ранних сэмплах и почему ошибки дизайна эксперимента делают выводы ненадёжными.

Что показывает

  • Поток пользователей во времени (Poisson arrivals) и накопление выборки по группам
  • Метрики в динамике: CTR, CR и ARPU для Control и Test
  • Uplift во времени: как “эффект” может менять знак и масштаб на ранних этапах
  • p-value во времени и сравнение с α: когда «значимость» появляется/исчезает
  • Останов по фиксированному горизонту или по правилам peeking (ранняя остановка)

Как читать визуал

Смотрите на три истории одновременно: (1) как растут выборки, (2) как стабилизируются метрики и uplift, (3) как ведёт себя p-value относительно α. На малых выборках шум и перекосы доминируют — линии “гуляют”. По мере роста выборки кривые обычно сглаживаются, но при peeking вы можете остановиться в случайной “удачной” точке, получив ложноположительный вывод.

Параметры

  • Seed: фиксирует генерацию случайностей, чтобы сценарии воспроизводились
  • Arrivals per minute: интенсивность входящего трафика
  • Horizon users: фиксированный горизонт (когда тест “заканчивается”)
  • baseCTR, upliftCTR: базовый CTR и относительный uplift тестовой группы
  • imprRate: среднее число показов на пользователя
  • buyProb, revenue: вероятность покупки и распределение выручки (для CR/ARPU)
  • Metric / Stat test / α: выбор целевой метрики, теста и порога значимости

Типовые ошибки

  • Peeking (ранняя остановка): частые “промежуточные взгляды” повышают шанс остановиться на случайной значимости
  • Imbalance (дисбаланс групп): 60/40 или 70/30 снижает power и увеличивает разброс оценок
  • SUTVA / spillover: часть Control “ведёт себя как Test”, размывая эффект и создавая контаминацию
  • Aggregation mismatch: per-event vs per-user агрегации могут давать разные ответы для CTR
  • Wrong statistical test: несоответствие теста метрике/единице анализа искажает p-value и доверие к CI

Идеи для экспериментов

  • Поймайте ложную значимость: включите peeking и уменьшите lookEveryUsers — как часто тест “успевает” остановиться?
  • Сравните дисбаланс: 50/50 vs 70/30 — как меняются скорость стабилизации и вероятность значимости?
  • Проверьте контаминацию: увеличьте spillover и наблюдайте, как эффект “растворяется”
  • CTR: unit-of-analysis: переключайте per-user vs per-event и сравните выводы
  • Выбор метрики: CTR vs ARPU — где больше шум и как это влияет на интерпретацию результатов?