← На главную

Ничего не произошло — и это результат

Как корректно "закрывать" эксперимент без эффекта и не выдумывать выводы.

Урок: Можно ли верить эффекту?

Контекст эксперимента

В тестовой группе изменили механику показа/плейсмент/частоту. Цель — рост выручки (или guardrail: не уронить retention при росте давления).

Тест шёл 14 дней, трафик стабильный. Контрольная группа без изменений.

По основным метрикам (Revenue/RPM/CTR/ShowRate) дельты около 0%. Никаких явных просадок guardrails не видно.

Вопрос: это действительно "нет эффекта" или тест не имел мощности для обнаружения эффекта?

Подумай

Показать разбор

Разбор

На графике видно, что обе метрики (Revenue и Primary) остаются практически неизменными в тестовой группе по сравнению с контролем. Разница близка к нулю на протяжении всего эксперимента.

Три разные ситуации, которые часто путают:

  1. Эффекта нет (true zero / near-zero): Изменение действительно не влияет на систему. Механика не работает, гипотеза не подтвердилась. Это валидный результат, если тест имел достаточную мощность для обнаружения эффекта.
  2. Эффект есть, но тест слабый (low power / high variance): Эффект существует, но тест не смог его обнаружить из-за недостаточной мощности (мало данных, высокая дисперсия, короткое окно). Нужно повторить с большей мощностью или более длинным окном.
  3. Эффект разный по сегментам и взаимно компенсируется (masking / Simpson): В одних сегментах эффект положительный, в других — отрицательный. В агрегате получается ноль. Нужно проверить сегменты отдельно.

Минимальный протокол закрытия теста:

  1. Проверить MDE/power на ключевых метриках: Хотя бы качественно: могли ли мы увидеть +X%? Если минимальная обнаружимая дельта (MDE) была 5%, а реальный эффект 0.5% — тест не мог его обнаружить. Нужно повторить с большей мощностью.
  2. Проверить устойчивость по времени: Ранние дни vs хвост эксперимента. Если в начале был эффект, а потом исчез — это адаптация, а не "нет эффекта". Если эффект появился только в конце — это лаг, нужно продлить окно.
  3. Проверить сегменты: Device/platform/temperature/гео. Возможно, эффект есть в мобильных, но нет в десктопе, или наоборот. Агрегат маскирует эффект.
  4. Проверить механизм (диагностические метрики): Requests → responses → shows, coverage, fill, show rate. Возможно, механизм сработал частично (например, show rate вырос, но CPM упал), и в итоге revenue не изменилась.
  5. Зафиксировать решение и условия, при которых стоит вернуться к гипотезе: Если эффекта нет, но гипотеза была разумной — опиши, при каких условиях (больше данных, другой сегмент, другое время) стоит повторить тест.

Важно: "Нет эффекта" — полезная информация, если ясно, ЧТО именно не сработало. Это не провал, а результат, который исключает гипотезу или указывает на необходимость изменений в дизайне теста.

Вывод

❌ Неправильный вывод:
«Разницы нет → значит тест бесполезен, забываем. Гипотеза неверна, больше не тестируем.»
✅ Корректный вывод:
Нулевой эффект — тоже валидный вывод, если тест имел достаточную мощность для обнаружения эффекта. Нужно описать границы: что мы смогли увидеть (например, эффект больше 2% был бы обнаружен) и что не смогли (эффект меньше 0.5% мог быть пропущен). Решение зависит от проверки: если power достаточен, сегменты проверены, лаги учтены — закрываем тест с выводом "эффекта нет". Если power недостаточен или есть подозрения на компенсацию — повторяем с изменениями (больше данных, другой дизайн, сегментация).
⚠️ Чего нельзя утверждать:
Нельзя утверждать, что "гипотеза неверна навсегда" — возможно, эффект есть, но тест не смог его обнаружить. Нельзя утверждать, что "эффект точно 0 при любых условиях" — возможно, эффект есть в других сегментах или проявится позже. Нельзя утверждать, что можно игнорировать лаги/сегменты — нулевой эффект в агрегате может маскировать разнонаправленные эффекты в сегментах или эффекты с лагом.