Статистика

t-тест Стьюдента: как пивовар изменил всю науку

В 1908 году пивовар Гиннесса Уильям Госсет изобрел t-тест, но компания запретила публикацию - коммерческая тайна. Он опубликовал под псевдонимом «Student». Сегодня t-тест работает в каждом A/B тесте Booking.com, Netflix и Google.

  • A/B тесты в Booking.com и Netflix - основа каждого эксперимента
  • Клинические испытания FDA: сравнение препарата с плацебо
  • Google Ads: проверка конверсии новых объявлений vs контроль
  • Sklearn t-test в feature selection для ML моделей
  • Парный t-тест: эффект обучения нейросети до/после fine-tuning
  • Производственный контроль качества: партия соответствует стандарту?

Предварительные знания

  • (no prerequisites)
  • Hypothesis Testing: How p-values Killed 64,000 Studies

Почему нельзя просто использовать нормальное распределение

**Дублин, 1906 год. Уильям Сили Госсет работает химиком на пивоваренном заводе Guinness.** Его задача: выбрать лучший сорт ячменя. Эксперимент дорогой - можно позволить только 5-10 образцов. Обычная статистика того времени требовала «достаточно большой выборки». Что значит «достаточно»? Госсет выводит точное распределение для малых n. Компания Guinness запрещает публикации (коммерческая тайна). Госсет публикует результат в 1908 году под псевдонимом **«Student»**. Его распределение до сих пор называется «распределением Стьюдента». t-тест Стьюдента - самый используемый статистический тест в мире: каждый A/B тест, каждое клиническое испытание, каждое сравнение ML-моделей. Всё это - пивовар с псевдонимом.

**Чему этот урок учит на самом деле**: не «как подставить в формулу t = (X̄ - μ₀)/(S/√n)», а **зачем нужно отдельное распределение для малых выборок**. При малом n оценка σ сама по себе неточна - и это добавляет дополнительную неопределённость. Распределение Стьюдента честно её учитывает. После урока: три вида t-тестов, Cohen's d, и почему Welch t-тест должен быть дефолтным.

Почему нельзя просто использовать нормальное распределение

При z-тесте используется статистика (X̄ - μ)/(σ/√n) ~ N(0,1). Это работает когда σ известно. Но σ почти никогда не известно - его заменяют на выборочное S. При больших n S ≈ σ и всё хорошо. При малом n (5-30 наблюдений) S сам является случайной величиной с существенным разбросом. Подстановка S вместо σ делает дроби «тяжелее» - больше вероятности далеких значений.

Если X₁,...,Xₙ ~ N(μ, σ²) и σ НЕИЗВЕСТНО: T = (X̄ - μ) / (S/√n) ~ t(n-1) где S = √(1/(n-1)·Σ(Xᵢ-X̄)²) - выборочное СКО (ddof=1) Распределение t(ν) с ν = n-1 степенями свободы: - Симметрично вокруг 0 (как нормальное) - Тяжелее в хвостах при малом ν (честно отражает неопределённость) - При ν → ∞ сходится к N(0,1) Сравнение критических значений для 95% (двустороннего): z = 1.960 (нормальное, n=∞) t₀.₀₂₅,₂₉ = 2.045 (n=30) t₀.₀₂₅,₉ = 2.262 (n=10) t₀.₀₂₅,₄ = 2.776 (n=5) При n=5: критическое значение в 1.42 раза больше! Больше вероятности экстремального → сложнее отвергнуть H₀. Это честно: с 5 измерениями меньше информации о σ.

Почему при малой выборке (n < 30) и неизвестном σ нужно использовать t-распределение, а не нормальное?

Три вида t-теста

Три вида t-теста

1. Одновыборочный: сравнение с константой

H₀: μ = μ₀ (истинное среднее равно заданному значению) H₁: μ ≠ μ₀ (двусторонний) T = (X̄ - μ₀) / (S/√n) ~ t(n-1) Пример: задержка API должна быть ≤ 200 мс (μ₀ = 200). Выборка 20 запросов: X̄ = 215 мс, S = 30 мс. T = (215 - 200) / (30/√20) = 15 / 6.71 = 2.237 df = 19, критическое t₀.₀₂₅,₁₉ = 2.093 2.237 > 2.093 → отвергаем H₀: задержка значимо превышает 200 мс.

2. Двухвыборочный: сравнение двух групп

H₀: μ₁ = μ₂ (средние двух групп равны) H₁: μ₁ ≠ μ₂ Welch t-тест (не предполагает равенство дисперсий): T = (X̄₁ - X̄₂) / √(S₁²/n₁ + S₂²/n₂) Степени свободы (формула Уэлча-Саттертуэйта): df = (S₁²/n₁ + S₂²/n₂)² / ((S₁²/n₁)²/(n₁-1) + (S₂²/n₂)²/(n₂-1)) Почему Welch, а не Student (pooled)? Student предполагает σ₁ = σ₂. Если это не так - тест некорректен. Welch работает в обоих случаях: при равных и неравных σ. Современный стандарт: **использовать Welch по умолчанию**.

3. Парный: до и после

Каждый объект измерен дважды: до и после воздействия. H₀: среднее изменение = 0 Dᵢ = Xᵢ_после - Xᵢ_до T = D̄ / (S_D/√n) ~ t(n-1) Преимущество: убирает межобъектную вариабельность. Пример: latency сервиса до и после оптимизации на 15 серверах. Без паринга: Var(X̄_after - X̄_before) = σ²_after/n + σ²_before/n С парингом: Var(D̄) = σ²_D/n (σ²_D << σ²_after + σ²_before) Парный тест в 2-5 раз мощнее двухвыборочного при парных данных.

Какой вариант t-теста выбрать для сравнения latency сервиса ДО и ПОСЛЕ оптимизации, измеренной на одних и тех же 15 серверах?

Effect size: статистическая значимость ≠ практическая важность

Effect size: статистическая значимость ≠ практическая важность

p-value зависит от n: при миллионе пользователей любая разница в конверсии 0.0001% будет статистически значимой. Cohen's d измеряет **размер эффекта в единицах стандартного отклонения** - независимо от n.

Cohen's dИнтерпретацияПример в ML
< 0.2Пренебрежимо малыйМодель лучше baseline на 0.01% accuracy
0.2 - 0.5МаленькийНовый feature улучшает F1 на 0.5%
0.5 - 0.8СреднийA/B: конверсия 3% vs 3.5%
> 0.8БольшойTransformer vs RNN на seq2seq задачах
> 1.2Очень большойВакцина против плацебо в COVID trials

**Правило в production**: всегда отчитываться о трёх числах: p-value (значима ли разница), Cohen's d или relative lift (насколько важна разница), доверительный интервал для разницы. Одного p-value недостаточно для решения о деплое.

В A/B тесте на 1 000 000 пользователей разница в конверсии 0.01% оказалась «статистически значимой» (p < 0.001). Что это значит для решения о деплое?

Где t-тест живёт в реальных системах

Где t-тест живёт в реальных системах

Какой подход СОВРЕМЕННАЯ практика рекомендует по умолчанию при сравнении двух независимых групп?

Практика: A/B тест сервиса рекомендаций

Практика: A/B тест сервиса рекомендаций

A/B тест: контроль CTR = 4.0% (n=2000), вариант CTR = 4.5% (n=2000). p-value двухвыборочного теста = 0.04. Какой грамотный отчёт?

Что унести из урока

  • **Распределение t(ν)**: тяжелее нормального из-за неопределённости в оценке σ. При ν = n-1 → ∞ сходится к N(0,1)
  • **Три вида**: одновыборочный (X̄ vs константа), двухвыборочный Welch (две независимые группы), парный (одни объекты до/после)
  • **Welch = дефолт**: не предполагает σ₁=σ₂, работает в обоих случаях с минимальными потерями мощности
  • **Cohen's d**: размер эффекта независимо от n. Маленький (<0.5), средний (0.5-0.8), большой (>0.8). Всегда отчитываться вместе с p-value
  • **Парный мощнее**: убирает межобъектный шум, в 2-5 раз эффективнее при правильном применении
  • **Статистическая ≠ практическая значимость**: при больших n любая разница значима. Смотреть на lift + CI + ROI

Куда дальше

t-тест - для числовых данных. Для категориальных - другой инструмент.

  • Хи-квадрат критерий — Тест для категориальных данных: SRM в A/B, соответствие распределению, независимость
  • Ранговые тесты (Манн-Уитни) — Когда данные ненормальные: непараметрическая альтернатива t-тесту
  • Bootstrap — t-тест без предположений о нормальности через ресэмплинг
  • ANOVA — Обобщение t-теста на k > 2 групп без роста ошибки первого рода

Связанные уроки

  • ml-53-ab-testing-ml
t-тест Стьюдента: как пивовар изменил всю науку

0

1

Войти