Собесов

Сценарий: арифметика дисперсии — когда складывать, когда нет

Статистика и теорверProbability theoryСредняяMiddle

Условие

A/B-тест: считаем metric = revenue_per_user. Var(revenue) = 100, среднее по 1000 юзеров. Какова дисперсия среднего?

Решение

Дисперсия среднего

Var(mean of n iid) = Var(X) / n
SE = sqrt(Var(X) / n)

Для n=1000, Var=100:

Var(mean) = 100 / 1000 = 0.1
SE = sqrt(0.1) ≈ 0.316

Свойства

Var(aX) = a² × Var(X)
Var(X + Y) = Var(X) + Var(Y) + 2·Cov(X, Y)
Var(X - Y) = Var(X) + Var(Y) - 2·Cov(X, Y)

Если X и Y независимы — Var(X ± Y) = Var(X) + Var(Y).

A/B-тест

Разница средних:

SE(diff) = sqrt(Var(A)/n_A + Var(B)/n_B)

Если Var одинакова и n равны:

SE(diff) = sqrt(2σ²/n)

В 1.41× больше, чем SE одной группы.

Ratio metric — Delta method

CTR = clicks / views. Если считать на user-level, view-level или session-level — Var разная.

Delta method:

Var(X/Y) ≈ (X/Y)² × [Var(X)/X² - 2·Cov(X,Y)/(X·Y) + Var(Y)/Y²]

Это важно для CR, CTR, ARPU — обычные t-test игнорируют ковариацию числителя и знаменателя.

Когда складывать дисперсии нельзя

  • Зависимые наблюдения (paired data, repeated measures, кластеризованные).
  • Sequential testing с many looks — увеличение Type I error.
  • Stratified sampling — нужен поправленный SE.

Bootstrap

Когда формула сложная — bootstrap резэмплинг:

import numpy as np
 
n_boot = 10000
boot_means = [np.random.choice(data, len(data), replace=True).mean() for _ in range(n_boot)]
boot_se = np.std(boot_means)

Подводные камни

  1. Variance суммируется только для независимых X, Y. Для зависимых — обязательно cov term.
  2. Std deviation не аддитивна: σ(X+Y) ≠ σ(X) + σ(Y) даже при независимости.
  3. На малых n (< 30) формула Var(mean) = σ²/n плохая аппроксимация — нужен t-distribution.
  4. Кластеризация: если юзеры внутри города коррелируют, effective n меньше, SE больше.
  5. Ratio metric — delta method или bootstrap, не t-test «в лоб».

Эталонный ответ

Var(mean of n iid) = σ²/n. Var аддитивна только для независимых; иначе с +2·Cov. Для ratio metrics — delta method или bootstrap, не наивный t-test.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти