Конверсия выросла: выкатывать эксперимент?
Сервис проверил новую форму оформления подписки. Пользователей случайно распределили между двумя вариантами до показа формы.
Условие
В контроле 10 000 пользователей и 1 000 покупок; в тесте 10 000 пользователей и 1 100 покупок. У каждого пользователя один бинарный исход. Эксперимент завершён в заранее выбранный срок, проверяется одна основная метрика. Рассчитай абсолютный и относительный эффект и приближённый двусторонний z-тест долей при уровне значимости 5%. Достаточно ли этих данных для запуска на всех?
Данные
| group | users | buyers |
|---|---|---|
| control | 10000 | 1000 |
| test | 10000 | 1100 |
Все данные учебные. Код можно выполнить в своей среде; поле ниже предназначено для черновика, без запуска кода.
Если нужен следующий шаг
Подсказка 1
Подсказка 2
Проверь себя
Показать решение и объяснение
from math import sqrt, erfc
n_a, x_a = 10000, 1000
n_b, x_b = 10000, 1100
p_a, p_b = x_a / n_a, x_b / n_b
delta = p_b - p_a
pooled = (x_a + x_b) / (n_a + n_b)
se_null = sqrt(pooled * (1 - pooled) * (1/n_a + 1/n_b))
z = delta / se_null
p_value = erfc(abs(z) / sqrt(2))
se_diff = sqrt(p_a*(1-p_a)/n_a + p_b*(1-p_b)/n_b)
ci = (delta - 1.96*se_diff, delta + 1.96*se_diff)
print(delta, delta/p_a, z, p_value, ci)По выбранному тесту нулевая гипотеза равенства конверсий отклоняется на уровне 5%. Это ещё не готовое продуктовое решение: нужны стоимость внедрения, минимальный полезный эффект и защитные метрики — например, возвраты, выручка и ошибки оплаты. При многократном просмотре результатов или выборе удачной метрики задним числом эта интерпретация p-value уже не подходит.
Проверка решения
- Рост на 1 п.п. не назван ростом на 1%.
- p-value не интерпретирован как вероятность истинности гипотезы.
- Решение учитывает не только факт p < 0,05, но и размер эффекта.
Вопрос на продолжение
Изменится ли решение, если средний чек в тесте упал на 15%? Что проверить, если один человек может попадать в обе группы?