Network effects и A/B-тесты

Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.

Зачем это знать

В соцсетях, marketplace, два-sided платформах обычный A/B работает плохо: treatment group влияет на control через взаимодействия. Netflix, Meta, Uber потратили годы на разработку специальных методов.

На собесах middle+ в таких компаниях обязательно спросят: «как тестировать фичу в соцсети?». Ответ «обычный A/B» — неправильный.

Проблема

Обычный A/B полагается на SUTVA: stable unit treatment value assumption.

SUTVA говорит: эффект на юзера зависит только от его treatment, не от treatment других.

В network:

  • Новый фиче в Facebook у 50% — они постят больше → видят контент и control
  • Скидка у 50% клиентов Uber — изменяет availability для всех

SUTVA нарушено → A/B estimate biased.

Примеры нарушений

Spillover

Treatment влияет на control.

Пример: новый ranking ИИ показал лучший контент в лентах treatment. Control users видят посты treatment users → тоже engage больше.

Cannibalization

Treatment забирает у control.

Пример: discount для 50% водителей Uber → они ездят больше, control водители имеют меньше заказов.

Two-sided markets

Изменения для buyers влияют на sellers и vice versa.

Решения

1. Cluster-randomized

Вместо users — случаем группы (города, communities). Эффект меряется на уровне cluster.

Плюсы: убирает spillover внутри cluster. Минусы: нужно много clusters, иначе мало power.

2. Switchback

Randomize по времени: неделя treatment, неделя control, alternating.

Плюсы: одна группа переживает оба treatment. Минусы: carryover effects, трендовые смещения.

3. Ego-cluster

Clusters = ego network (user + friends). Unit treatment = whole cluster.

Плюсы: учитывает social graph. Минусы: сложно реализовать.

4. Geo experiments

Geographic units как clusters. Classic для Uber, Lyft, marketplace.

Плюсы: natural clustering. Минусы: ограниченное число регионов.

5. Budget splitting

Split budget / inventory между treatment и control (для two-sided).

Cluster-randomized detail

1. Выбрать cluster definition (geo, community, ego-network)
2. Random assignment clusters в A vs B
3. Aggregate metric per cluster
4. T-test на cluster-level means

Наследование

Важный параметр — ICC (intra-class correlation): насколько units в cluster похожи.

Высокий ICC → меньше effective sample size → нужно больше clusters.

В Python

import numpy as np
from scipy.stats import ttest_ind

# Aggregated per cluster
treatment_cluster_means = [0.12, 0.15, 0.11, ...]
control_cluster_means = [0.10, 0.09, 0.11, ...]

stat, p = ttest_ind(treatment_cluster_means, control_cluster_means)

Когда обычный A/B всё же ok

  • Isolated users (little interaction)
  • Content features (не social)
  • Individual UX (не marketplace)
  • Effects не transmit через network

Real-world кейсы

LinkedIn — People You May Know

Recommended friends в сети — huge network effects. LinkedIn использует ego-cluster randomization.

Facebook — News Feed

Меняет что посты показывают → спилловер массивный. Cluster-based + switchback.

Uber — pricing

Surge pricing affects supply/demand. Geographic experiments + switchback.

Airbnb

Ranking changes affect bookings → affects supply. Market-level experiments.

На собесе

«Почему A/B не работает в соцсетях?» Нарушение SUTVA из-за spillover.

«Как решать?» Cluster-randomized, switchback, geo experiments.

«Что такое SUTVA?» Treatment эффект на юзера зависит только от его treatment.

«Trade-off cluster-randomized?» Меньше статистической power (effective N = clusters).

Частые ошибки

Игнорировать spillover

В marketplace/social — частая ошибка. Результат biased.

Малое число clusters

10 clusters — очень мало. Нужно 30+.

Carryover в switchback

Неделя treatment «запоминается» юзерами. Нужен wash-out period.

Связанные темы

FAQ

Cluster-randomized в малых компаниях?

Сложно, т.к. мало clusters. Лучше switchback или accept bias.

Switchback какой длительности?

Часто day-level, depend на carryover.

Как определять cluster?

Geo, community detection, ego network — в зависимости от природы product.


Тренируйте A/B — откройте тренажёр с 1500+ вопросами для собесов.