← Назад к вопросам

Какой сделаешь вывод при серых метриках после окончания теста?

2.7 Senior🔥 111 комментариев
#A/B тестирование#Статистика и математика

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

"Серые" метрики после теста: как интерпретировать и принимать решения

"Серые метрики" — это результаты без чёткого сигнала. Не явный успех, не явный провал. Статистически можно поспорить, практически — непонятно, стоит ли развёртывать. Это одна из самых сложных ситуаций для Product Analyst, потому что здесь нет правильного ответа. Разберу, как я думаю в такой ситуации.

Что такое "серые метрики"?

Примеры:

  1. p-value = 0.08 (не значимо на 5%, но близко)

    • Результат почти статистически значим, но не совсем
    • Могли бы было развернуть при α=0.1, но при α=0.05 нет
  2. Confidence interval пересекает 0 (или не пересекает, но еле-еле)

    • Эффект может быть положительный, отрицательный или нулевой
    • 95% CI = [-1%, +5%] → не знаем знак эффекта
  3. Primary metric ↑ 3%, Secondary metric ↓ 2%

    • Одна метрика улучшилась, другая упала
    • Невозможно сказать, хорошо ли это
  4. Эффект большой, но выборка маленькая (p=0.15)

    • Видим +10% конверсию, но p-value > 0.05
    • Может быть, нужен больший sample size
  5. Результаты разные по когортам

    • Новые пользователи: +8% (значимо)
    • Постоянные пользователи: -2% (не значимо)
    • Во всём сегменте: +1% (не значимо)

Мой процесс принятия решения в ситуации "серых метрик"

Шаг 1: Определить, действительно ли это "серо"

Нужно честно ответить на вопросы:

  • Это просто не значимо, но направление положительное?
  • Или результаты действительно разнородные?
  • Есть ли причины сомневаться в качестве теста?
# Пример анализа
if p_value < 0.05:
    print("Clear significant result")
elif p_value < 0.10 and effect_direction == "positive":
    print("Grey: positive but not significant")
elif p_value > 0.10 and ci_width < 2%:
    print("Grey: wide CI, but small effect size")
elif primary_metric_positive and secondary_metric_negative:
    print("Grey: trade-off situation")
else:
    print("Clear loss or unclear")

Шаг 2: Проверить качество теста

Прежде чем интерпретировать результаты, убедиться:

  • Рандомизация работала правильно? (не 60/40 вместо 50/50?)
  • Нет технических ошибок? (оба варианта работают одинаково?)
  • Data quality OK? (нет пропусков, неправильных значений?)
  • Время теста достаточно? (не прервали ли рано?)
-- Проверка баланса групп
SELECT 
  variant,
  COUNT(DISTINCT user_id) as users,
  ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (), 2) as pct
FROM experiment_events
GROUP BY variant;
-- Expected: ~50% control, ~50% variant

Шаг 3: Уточнить размер эффекта

Это важнее, чем p-value. Спросить:

  • Эффект положительный, +3%? Это практически значимо? (зависит от продукта)
  • Или эффект слишком маленький, чтобы волноваться? (например, +0.5%)
Для e-commerce:
+1-2% конверсии = "серо" (может быть, есть, может нет)
+5%+ конверсии = явный успех (даже если p=0.07)

Для SaaS:
+3%+ retention = может быть значимо
+0.5% retention = скорее всего шум

Шаг 4: Анализ по подгруппам

Это критично. Вполне возможно:

  • Для новых пользователей: +10% (отлично)
  • Для постоянных: -5% (плохо)
  • В целом: +2% (серо, не значимо)

Что делать?

SELECT 
  CASE WHEN user_created_at < DATE(test_start) - 30 THEN 'Old'
       ELSE 'New' END as user_type,
  variant,
  COUNT(DISTINCT user_id) as users,
  COUNT(DISTINCT CASE WHEN conversion THEN user_id END) as conversions,
  ROUND(
    100.0 * COUNT(DISTINCT CASE WHEN conversion THEN user_id END) / 
    COUNT(DISTINCT user_id), 2
  ) as conversion_rate
FROM experiment_data
GROUP BY user_type, variant;

Если эффект есть только для новых пользователей, может быть:

  • Развернуть только для новых пользователей
  • Или провести отдельный тест на постоянных
  • Или создать разные варианты для разных сегментов

Как я буду принимать решение

Сценарий 1: p=0.08, effect = +3%, направление положительное

Вопросы:

  • Эффект 3% практически значим для нас? Это $100K в год?
  • Есть ли причины думать, что эффект больше? (может быть, нужно больше данных)
  • Какой cost of waiting? (если ждём 2 недели, может конкурент сделает это)

Возможные решения:

Вариант A: Развернуть осторожно

- Развернуть на 10% трафика
- Мониторить 1 неделю
- Если не сломалось, увеличить на 50%
- Если хорошо, на 100%
Преимущество: Быстро фиксим ошибку, если она есть
Недостаток: Сложнее, нужна инфраструктура для gradual rollout

Вариант B: Продолжить тест

- "Давайте дождёмся большего sample size"
- +2 недели теста
- Может быть, p-value упадёт до 0.05
Преимущество: Более уверенные результаты
Недостаток: Возможность потерять окно возможности

Вариант C: Откатить и переделать

- "Результаты неоднозначны, давайте попробуем другой подход"
- Измените дизайн
- Запустите новый тест
Преимущество: Можем найти лучшее решение
Недостаток: Медленно

Вариант D: Не развёртывать

- "Результаты недостаточно хороши"
- Двигаемся дальше
Преимущество: Не рискуем
Недостаток: Упускаем потенциальную прибыль

Мой выбор: Вариант A (gradual rollout), если:

  • Effect = +3%+
  • Cost of rollback low (легко откатить)
  • P-value = 0.08-0.10 (не совсем случайно)
  • Sample size достаточно большой

Или Вариант B (продолжить тест), если:

  • Effect = +1-2% (скромный)
  • Нужна большая уверенность
  • Есть 2 недели для теста

Сценарий 2: Primary +5% (p=0.03), Secondary -3% (p=0.12)

Анализ:

  • Primary metric: явная победа ✓
  • Secondary metric: не значимо, может быть случайность

Вопросы:

  • Какая secondary metric? Если это obscure метрика, можно игнорировать
  • Если это importantes метрика (например, retention), нужно серьёзно относиться
  • Есть ли механизм, почему она упала? (или это просто noise?)

Примеры:

Good: Primary = Revenue +5%, Secondary = "clicks on unrelated button" -2% → Развёртываем

⚠️ Bad: Primary = Short-term conversion +5%, Secondary = 7-day retention -3% → Может быть, привлекли low-quality users → Нужен более тщательный анализ LTV

Bad: Primary = Conversion +5%, Secondary = User satisfaction score -5% → Люди конвертируют, но несчастны → Не развёртываем или переделываем


Сценарий 3: Результаты разные по когортам

Новые пользователи: Conversion +8%, p=0.02 ✓
Постоянные пользователи: Conversion +1%, p=0.45 ✗
Общее: Conversion +2%, p=0.15 (?)

Выводы:

  1. Если мы хотим фокусироваться на новых пользователях: Развёртываем, это работает
  2. Если мы хотим фокусироваться на постоянных: Не работает, откатываем
  3. Если нужно работать с обоими: Изменяем стратегию, может быть, разные варианты для разных групп

Когда я скажу "Не развёртывать" несмотря на положительный результат

Причина 1: Effect слишком маленький (< 0.5%)

  • Это может быть шум
  • Cost of implementation > expected profit

Причина 2: Secondary metrics значительно упали

  • Хотя бы одна importante secondary metric упала на 3%+
  • И это не объяснимо

Причина 3: Test quality questionable

  • Рандомизация неправильная
  • Есть технические ошибки
  • Sample size слишком маленький (< 100 конверсий на группу)

Причина 4: Эффект только в одном сегменте, но это неожиданно

  • Например, +10% для мобильных, -5% для desktop
  • Нужно понимать почему, прежде чем развёртывать

Мой финальный совет

Когда метрики "серые":

  1. Честно оцени вероятность выигрыша — 60%? 55%? 51%?

  2. Оцени cost of mistake — если развернём и ошибёмся, сколько потеряем?

  3. Оцени cost of waiting — если ждём, что мы потеряем?

  4. Выбери decision rule:

    • Если вероятность выигрыша > 70% AND cost of mistake low → Развёртываем
    • Если вероятность выигрыша 50-70% AND можем сделать gradual rollout → Осторожно развёртываем
    • Если вероятность выигрыша < 50% → Не развёртываем
    • Если неясно → Продолжаем тест или переделываем
  5. Документируй решение — почему выбрали именно это? Чему учимся?

Пример документирования

## Test: Bigger CTA Button

**Primary Metric:** Conversion Rate
- Control: 5.0%
- Variant: 5.15%
- Effect: +0.15%, p=0.08, 95% CI = [-0.02%, +0.32%]

**Secondary Metrics:**
- AOV: +1.2% (p=0.02) ✓ Good
- Bounce Rate: +0.5% (p=0.35) — No signal

**Decision:** Gradual Rollout
- Reason: Effect is positive, secondary positive, confidence interval doesn't clearly exclude 0
- Risk: Small, because effect size is modest and AOV improved
- Monitoring: Check daily for regressions, roll back if conversion drops below 4.8%

Вывод

Серые метрики — это реальность, не исключение. Perfect тесты с p < 0.001 редки. Product Analyst должен научиться принимать решения в условиях неопределённости, а не просто делать то, что говорит p-value. Ключ — комбинировать статистику, практическую значимость, контекст и риск.

Какой сделаешь вывод при серых метриках после окончания теста? | PrepBro