A/B-тесты · РезультатСредний чек и выручка в A/B-тесте
Как сравнить средний чек и выручку в A/B-тесте: t-тест Уэлча по сводным данным, бутстрап по выручке на пользователя, винзоризация выбросов, Манн–Уитни для сверки и разложение ARPU на конверсию и чек. Для среднего чека на заказ — дельта-метод со сверкой бутстрапом. Код Python и R.
Цифры остаются в браузере и никуда не отправляются
n, среднее и стандартное отклонение по группам — из отчёта или выгрузки. Считается t-тест Уэлча: дисперсии групп не обязаны совпадать.
Выручка на пользователя столбцом — из Excel или выгрузки, нули — пользователи без покупки. Добавятся бутстрап, Манн–Уитни для сверки и разложение выручки.
Средний чек на заказ, когда делили пользователей: строка на человека — «выручка; заказы». Дисперсию считает дельта-метод, сверяет бутстрап.
A
B
n — целое не меньше 2, среднее — число, SD — не меньше нуля
Выбросы — винзоризация
Логарифмировать ln(1 + x)
Нужно хотя бы по три пользователя в группе и заказы больше нуля
α = 0,05 · двусторонняя проверка
Уровень значимости α
Выбирайте, только если заранее решили, что B не может быть хуже, и отрицательный результат вас не интересует.
B приносит больше.
Среднее в B выше на 100 ₽ (+3,3 %), вероятно от +4 ₽ до +196 ₽; p = 0,042.
Разница средних
+100 ₽
ДИ: +4 ₽ … +196 ₽B − A
Прирост
+3,3 %
к 3 000 ₽ в Auplift
Вероятность случайности
0,042
t-тест Уэлчаp
Статистика t
2,039
df = 3981,5t
Стандартная ошибка
49,0
₽SE
Степени свободы
3981,5
Уэлч–Саттерсвейтdf
Разница не доказана.
Среднее в B выше на 24 905 ₽ (+2024,8 %), вероятно от −27 303 ₽ до +77 113 ₽; p = 0,33 — нулевая разница не исключена.
В данных есть выброс 500 000 ₽ — он один сдвигает среднее и раздувает разброс. Включите винзоризацию 99 %.
Разница средних
+24 905 ₽
ДИ: −27 303 ₽ … +77 113 ₽B − A
Прирост
+2024,8 %
к 1 230 ₽ в Auplift
Вероятность случайности
0,33
t-тест Уэлчаp
Статистика t
0,998
df = 19,0t
Стандартная ошибка
24944,1
₽SE
Манн–Уитни для сверки
0,85
устойчив к выбросамp
B приносит больше.
Средний чек на заказ в B выше на 164 ₽ (+12,5 %), вероятно от +34 ₽ до +294 ₽; p = 0,014.
Разница отношений
+164 ₽
ДИ: +34 ₽ … +294 ₽B − A
Прирост
+12,5 %
к 1 312 ₽ в Auplift
Вероятность случайности
0,014
дельта-метод, z-тестp
Статистика z
2,465
по пользователямz
Стандартная ошибка
66,5
₽SE
Средний чек A / B
1 312 ₽ / 1 476 ₽
12 и 12 пользователейR
Средний чек = выручка / заказы, а случайно делили пользователей. Заказы одного человека связаны, поэтому наивный t-тест по заказам занижает разброс и чаще находит «эффект». Дельта-метод считает дисперсию на уровне пользователя.
02
Бутстрап
Бутстрапу нужны значения по пользователям: выберите «Сырые» или «Отношение».
03
Разложение выручки
Разложение выручки
ARPU = конверсия × средний чек покупателя
Разложение выручкиABΔ
Конверсия в покупку50,0 %50,0 %0,0 %
Средний чек покупателя2 460 ₽52 270 ₽+2024,8 %
ARPU1 230 ₽26 135 ₽+2024,8 %
Выручка на пользователя сдвинулась в основном за счёт среднего чека покупателя, а не доли покупателей.
Разложению нужны значения по пользователям с нулями: выберите «Сырые».
По сводным данным — t-тестом Уэлча: нужны число покупателей, среднее и стандартное отклонение в каждой группе. Для 3 000 ± 1 500 против 3 100 ± 1 600 по 2 000 покупателей t = 2,04, p = 0,042, разница от 3,9 до 196,1 ₽. Если есть выручка по каждому пользователю, добавьте бутстрап: он не требует нормальности.
Винзоризировать: значения выше 99-го перцентиля объединённой выборки приравнять к порогу. В примере с «китом» один заказ на 500 000 ₽ раздувает среднее B в 21 раз, а t-тест при этом ничего не находит: p = 0,33. После винзоризации обрезано одно значение, прирост +8,9 %, p = 0,81 — разницы нет, и это честный ответ.
Повторная выборка из своих же данных: 10 000 раз берём пользователей с возвращением в каждой группе и считаем разницу средних. Разброс этих разниц даёт интервал без допущения о нормальном распределении — для выручки с длинным хвостом это важно. Зерно фиксировано, поэтому повторный расчёт даёт тот же интервал.
Метрика вида «выручка / заказы», когда случайно делили пользователей, а не заказы. Дисперсию такого отношения нельзя посчитать по заказам — их наблюдения не независимы. Дельта-метод линеаризует отношение и считает дисперсию на уровне пользователя. В примере средний чек на заказ вырос на 12,5 %, p = 0,014, и бутстрап по пользователям даёт тот же интервал.
Заказы одного человека связаны: кто покупает часто, тот и тратит по-своему. Если считать каждый заказ отдельным наблюдением, t-тест видит больше независимых данных, чем есть на самом деле, занижает разброс и чаще находит несуществующий эффект. Единица анализа должна совпадать с единицей рандомизации — пользователем.
ARPU — выручка на пользователя, включая тех, кто ничего не купил: ARPU = конверсия в покупку × средний чек покупателя. Решения о деньгах принимают по ARPU, а средний чек объясняет, за счёт чего он сдвинулся. Разложение на странице показывает оба множителя и говорит, какой из них дал прирост.