Опубликовано: Ноябрь 25, 2025
В e‑commerce практически каждое решение может напрямую влиять на выручку. Выручка — это метрика, которую формирует несколько разносторонних компонентов: конверсия, средний чек, сегмент пользователей, сезонность и т.д. Запустили новый дизайн корзины — выручка выросла на 1% — это просто случайный шум? А если в одних сегментах (Desktop) эффект положителен, а в других (Mobile) отрицателен, что тогда? Как правильно интерпретировать результаты A/B‑тестов в условиях высокой вариативности метрик и неоднородной аудитории?
Внутри e‑commerce платформы пользователи могут заметно различаться по поведению и ценности. Например, «Активные» пользователи могут совершать много покупок с высоким средним чеком, а «Неактивные» заходить редко и тратить мало. Такие различия создают страты (сегменты) внутри аудитории. Метрики, такие как средний чек или выручка на пользователя (ARPU), могут значительно варьироваться между этими стратами. Например, «активные» пользователи могут иметь ARPU в несколько раз выше, чем «неактивные».
Эта вариативность усложняет интерпретацию результатов A/B‑тестов, так как эффект может отличаться внутри страт, а также быть результатом изменения состава аудитории в тестовой группе.
Рассмотрим A/B‑тест с двумя группами: A (контрольная) и B (тестовая).
Метрика: Средняя выручка на пользователя (ARPU).
Страты (сегменты):
| Сегмент | Группа A | Группа B | Эффект |
|---|---|---|---|
| Неактивные | $2{.}0$ (100 чел.) | $1{.}9$ (20 чел.) | ↘ −5% |
| Активные | $5{.}0$ (20 чел.) | $4{.}8$ (100 чел.) | ↘ −4% |
В обоих случаях вариант B выглядит заметно хуже варианта A.
Посчитаем среднее по группам:
Группа A:
$$ \text{ARPU}_A = \frac{100 \cdot 2.0 + 20 \cdot 5.0}{100 + 20} = \frac{200 + 100}{120} = \frac{300}{120} = \mathbf{2.5} $$
Группа B:
$$ \text{ARPU}_B = \frac{20 \cdot 1.9 + 100 \cdot 4.8}{20 + 100} = \frac{38 + 480}{120} = \frac{518}{120} \approx \mathbf{4.32} $$
Ключевой момент: Мы видим общий рост, хотя внутри страт эффект отрицательный. Причина этого парадокса в том, что в группе B оказалось намного больше «богатых» активных пользователей. Как интерпретировать данный результат?
| A | B | ||
| ARPU | $2{.}50$ | $4{.}32$ | ↗ +73% |
Для интерпретации результата нам нужно ответить на вопрос: почему произошло перераспределение, откуда возник дисбаланс категорий пользователей?
Разные причины ведут к диаметрально противоположным выводам.
Важно подчеркнуть: В данном примере страты определены post hoc — на основе поведения пользователей во время эксперимента (например, по количеству покупок или общей выручке за тестовый период). Такие ex‑post страты могут изменяться под влиянием самого тестового воздействия. Если бы страты были определены до рандомизации (например, по активности за предыдущий месяц), то значительное различие в их долях между группами указывало бы на сбой рандомизации. Однако при ex‑post стратификации перераспределение долей может быть следствием реального эффекта фичи — например, если она перевела пользователей из «неактивных» в «активные».
Чтобы понять механику парадокса, обратимся к двум фундаментальным законам статистики.
Пусть $Y$ — целевая метрика (выручка), а $S$ — переменная стратификации (страта). Математическое ожидание $Y$ можно выразить через условные ожидания внутри страт:
$$ \mathbb{E}[Y] = \mathbb{E}[\mathbb{E}[Y \mid S]] = \sum_i w_i \cdot \mu_i $$
где $w_i = P(S=i)$ — доля страты $i$ в общей популяции, а $\mu_i = \mathbb{E}[Y \mid S=i]$ — среднее значение метрики в страте $i$.
Это ключевое свойство для декомпозиции эффекта: изменение общего среднего можно разложить на изменения внутри страт и изменения весов страт. Именно на этом законе основана вся последующая декомпозиция A/B-теста.
Пусть $Y$ — целевая метрика (выручка), а $S$ — переменная стратификации (страта). Дисперсия $Y$ раскладывается на две компоненты, внутристратовую и межстратовую:
$$ \mathrm{Var}(Y) = \underbrace{\mathbb{E}[\mathrm{Var}(Y \mid S)]}_{\text{Внутристратовая}} + \mathrm{Var}(\mathbb{E}[Y \mid S]) $$
Интерпретация:
Если межстратовая вариативность велика, то любое изменение в пропорциях страт (весах) приведет к значительному сдвигу общей метрики.
Напомним, дисперсия случайной величины — это мера разброса значений случайной величины относительно её математического ожидания:
$$ D[X] = \mathbb{E}[(X - \mathbb{E}[X])^2] $$
Если случайная величина $X$ дискретна, то
$$ D[X] = \sum (x_i - \mathbb{E}[X])^2 \cdot P(X = x_i) $$
Для нашего двухстратного примера (Неактивные/Low и Активные/High) межстратовая компонента дисперсии в группе A:
$$ \mathrm{Var}_A(\mathbb{E}[Y \mid S]) = w_A^{\text{Low}}\bigl(\mu_A^{\text{Low}} - \text{ARPU}_A\bigr)^2 + w_A^{\text{High}}\bigl(\mu_A^{\text{High}} - \text{ARPU}_A\bigr)^2, $$
а для группы B аналогично.
Чем больше эти величины относительно условной внутристратификационной дисперсии $\mathbb{E}[\mathrm{Var}(Y\mid S)]$, тем чувствительнее общая метрика к сдвигам в составе аудитории.
Именно поэтому имеет смысл применять стратифицированное семплирование и/или стратифицированную оценку эффекта, чтобы убрать межстратовую вариативность и снизить дисперсию оценки.
Оценка при стратифицированном подходе:
$$ \hat{\mu}_{\text{strat}} = \sum_k w_k \cdot \bar{Y}_k, $$
где $w_k$ — фиксированный вес страты (доля в генеральной совокупности на основе предэкспериментальных данных), а $\bar{Y}_k$ — среднее значение метрики в страте $k$. В результате дисперсия оценки зависит только от внутристратовой вариативности.
Применяя закон полного математического ожидания к группам A и B:
$$ \text{ARPU}_A = \mathbb{E}[Y \mid \text{group}=A] = \sum_i w_i^A \mu_i^A, \qquad \text{ARPU}_B = \mathbb{E}[Y \mid \text{group}=B] = \sum_i w_i^B \mu_i^B. $$
В нашем примере с двумя стратами:
$$ \text{ARPU}_A = w_A^{\text{Low}} \cdot \mu_A^{\text{Low}} + w_A^{\text{High}} \cdot \mu_A^{\text{High}}, \qquad \text{ARPU}_B = w_B^{\text{Low}} \cdot \mu_B^{\text{Low}} + w_B^{\text{High}} \cdot \mu_B^{\text{High}}. $$
Подставим числа нашего примера:
$$ \text{ARPU}_A = \frac{100}{120} \cdot 2.0 + \frac{20}{120} \cdot 5.0 = 2.5, \qquad \text{ARPU}_B = \frac{20}{120} \cdot 1.9 + \frac{100}{120} \cdot 4.8 = \frac{518}{120} \approx 4.32. $$
Общий эффект по метрике — разность средних между группами:
$$ \Delta_{\text{Total}} = \text{ARPU}_B - \text{ARPU}_A = 4.32 - 2.50 \approx \mathbf{+1.82}. $$
Эту разность можно представить как сумму двух компонент, внутристратовый эффект и эффект состава/объема:
$$ \Delta_{\text{Total}} \approx \Delta_{\text{within}} + \Delta_{\text{mix}} $$
$$ \Delta_{\text{within}} = w_A^{\text{Low}} \cdot (\mu_B^{\text{Low}} - \mu_A^{\text{Low}}) + w_A^{\text{High}} \cdot (\mu_B^{\text{High}} - \mu_A^{\text{High}}). $$
$$ \Delta_{\text{mix}} = (w_B^{\text{High}} - w_A^{\text{High}}) \cdot (\mu_B^{\text{High}} - \mu_B^{\text{Low}}). $$
$$ \frac{100}{120} (1.9 - 2.0) + \frac{20}{120} (4.8 - 5.0) \approx -0.083 - 0.033 = \mathbf{-0.12} $$
Это реальное падение выручки на пользователя из‑за возможного снижения качества внутри каждой страты.
Доля активных
$$ \underbrace{\left(\frac{100}{120} - \frac{20}{120}\right)}_{\Delta \text{Share}} \cdot (4.8 - 1.9) \approx 0.667 \cdot 2.9 = \mathbf{+1.93} $$
Понимание источников вариативности метрик и корректная декомпозиция общего эффекта необходимы для обоснованной интерпретации результатов A/B‑тестов. Рекомендуется выделять эффект качества (изменение средних в пределах страт) и эффект состава/объёма (изменение долей страт), чтобы не ошибаться при изменении структуры аудитории. Такой подход применим не только для стратифицированного анализа, но и для сценариев, где тестируемая функция может вызывать перетекание пользователей между группами или генерировать сетевые эффекты.