Тест Стьюдента, Велча и Манн-Уитни на малых выборках

Интерактивные симуляции ошибки I рода и мощности

statistics
simulation
Author

Elena U

Published

June 6, 2026

Введение

В предыдущем посте я разбирала как работает тест Стьюдента и тест Велча на больших выборках (n = 1000–10000). Краткий вывод оттуда: тест Велча надёжнее при неравных дисперсиях и разных размерах выборок, так как лучше контролирует ошибку первого рода.

Но в научных исследованиях, например в биологии, медицине выборки обычно не такие большие, может быть всего 5–30 наблюдений на группу. В прошлый раз обещала рассмотреть отдельно, как работают тесты на малых выборках. В этот раз я подготовила интерактивные симуляции, которые работают прямо в браузере, можно менять параметры и наблюдать, как это влияет на ошибку I рода и мощность тестов.

NoteВспомним: определение ошибок I и II рода (а также мощности)

Ошибка I рода — вероятность найти различия, когда их нет (ложноположительный результат). Должна быть ≈ заданному уровню α (обычно 0.05). Подробнее писала здесь.

Мощность (1−β) — вероятность найти различия, когда они действительно есть. Чем выше, тем лучше (обычно стараются иметь уровень мощности не меньше 0.8).

Надежный статистический тест должен контролировать ошибку I рода на уровне значимости α и при этом обладать высокой мощностью для обнаружения реального эффекта.

Тест Стьюдента

Вычисление t-статистики:

\[ t = \frac{\overline{X}_1 - \overline{X}_2}{s_p\sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}, \quad s_p = \sqrt{\frac{(n_1 - 1)s_1^2 + (n_2 - 1)s_2^2}{n_1 + n_2 - 2}} \]

Количество степеней свободы: \(df = n_1 + n_2 - 2\)

Тест Велча

Вычисление t-статистики:

\[ t = \frac{\overline{X}_1 - \overline{X}_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}} \]

Количество степеней свободы:

\[ df = \frac{\left(\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}\right)^2}{\frac{(s_1^2/n_1)^2}{n_1-1} + \frac{(s_2^2/n_2)^2}{n_2-1}} \]

Тест Манна-Уитни

Непараметрический тест, основанный на рангах. Не требует нормальности распределения выборочных средних. Статистика \(U\) считается по числу пар \((x_i, y_j)\), где \(x_i > y_j\), и при \(n_1, n_2 > 5\) сопоставляется с нормальным приближением:

\[ z = \frac{|U - \frac{n_1 n_2}{2}| - 0.5}{\sqrt{\frac{n_1 n_2 (n_1 + n_2 + 1)}{12}}} \]

В числителе — поправка на непрерывность (−0.5): так как дискретная ранговая статистика приближается непрерывным распределением. На очень малых выборках (n ≈ 5–6) из-за этой поправки и общей дискретности данных нормальное приближение теста становится довольно консервативным (фактическая доля ложных срабатываний падает ниже заявленного \(\alpha\)).

Тест Бруннера-Мюнцеля

Робастный ранговый тест, который в отличие от Манна-Уитни, не требует одинаковых дисперсий и форм распределений (см. Brunner & Munzel, 2000). Каждое наблюдение ранжируется и в объединённой выборке (\(R_{ki}\)), и внутри своей группы (\(R^{(k)}_{ki}\)). Статистика:

\[ W = \frac{n_1 n_2 \,(\overline{R}_{2} - \overline{R}_{1})}{(n_1 + n_2)\sqrt{n_1 S_1^2 + n_2 S_2^2}}, \quad S_k^2 = \frac{1}{n_k - 1}\sum_{i=1}^{n_k}\left(R_{ki} - R^{(k)}_{ki} - \overline{R}_{k} + \tfrac{n_k+1}{2}\right)^2 \]

где \(\overline{R}_{k}\) — средний ранг группы \(k\) в объединённой выборке. Ключевое отличие от Манна-Уитни: дисперсия рангов \(S_k^2\) оценивается отдельно для каждой группы, поэтому тест устойчив к гетероскедастичности. Статистика \(W\) сравнивается с распределением Стьюдента со степенями свободы по Саттертуэйту (как у теста Велча):

\[ df = \frac{\left(n_1 S_1^2 + n_2 S_2^2\right)^2}{\frac{(n_1 S_1^2)^2}{n_1 - 1} + \frac{(n_2 S_2^2)^2}{n_2 - 1}} \]

NoteВспомним: нулевая гипотеза Манна-Уитни не о равенстве средних

Из-за восприятия теста Манна-Уитни как непараметрического аналога теста Стьюдента может сложиться впечатление, что он тоже сравнивает средние.
Однако это не так: нулевая гипотеза — это \(\Pr\{X>Y\} = \Pr\{X<Y\}\), то есть «значения из одной группы не склонны быть систематически больше значений из другой». Такое условие называют стохастическим равенством, а его нарушение (например, \(\Pr\{X>Y\} > \Pr\{X<Y\}\)) — вероятностным доминированием. Только при жестком допущении одинаковой формы и дисперсии распределений этот тест становится эквивалентен сравнению медиан или оценке величины сдвига (location shift).

NoteТонкость с записью нулевой гипотезы

Формулировку \(\Pr\{X>Y\} = 0.5\) часто пишут как сокращение, но строго она верна только для непрерывных распределений. Для порядковых и дискретных количественных величин \(\Pr\{X = Y\} \neq 0\), поэтому \(\Pr\{X>Y\}\) в принципе не равно \(0.5\). Корректная общая запись — \(\Pr\{X>Y\} = \Pr\{X<Y\}\) (спасибо Евгению Бакину за уточнение).

Практическое следствие: Если у групп разные дисперсии, стандартный аппарат теста ломается. Формула знаменателя (стандартной ошибки рангов) требует полной идентичности форм распределений (\(F = G\)). При гетероскедастичности эта оценка становится неверной, тест занижает реальную ошибку и начинает завышать долю ложных срабатываний в A/A-тестах.

Многие при виде неравных дисперсий, ненормального распределения данных переходят на непараметрику, считая её более устойчивой. Но Манн-Уитни не решает проблему гетероскедастичности, он тоже подвержен ей и даёт ложные срабатывания при равных средних. Если дисперсии разные, более правильно использовать тест Велча, а для сравнения ранговых распределений — тест Бруннера-Мюнцеля (Brunner-Munzel test), который корректно пересчитывает стандартную ошибку для каждой группы отдельно (формула теста выше под катом).

А на симуляциях подробно это проиллюстрируем!

Интерактивная симуляция

Настройте параметры ниже и нажмите «Запустить». Симуляция многократно генерирует пары выборок из генеральных совокупностей с заданными параметрами и считает для каждого теста, в какой доле случаев была отклонена H0 (p-value < α).

Параметры

Пример данных и распределение p-value

Результаты

Разбор надежности тестов

Для анализа надежности тестов нужно проверить два пункта: оценка доли ошибок первого рода при верности нулевой гипотезы и оценка мощности. Для краткости можно это назвать искусственным A/A и A/B тестом.

NoteA/A vs A/B
  • A/A-тест (\(Δ = 0\)) – обе группы взяты из генеральных совокупностей с одинаковыми средними. Нулевая гипотеза о равенстве средних верна, реального эффекта нет, поэтому отклонение нулевой гипотезы – это ошибка I рода. Здесь мы проверяем, держит ли тест заявленный уровень α.
  • A/B-тест (\(Δ \neq 0\)) – средние групп (истинные средние генеральных совокупностей) действительно различаются. Здесь мы измеряем мощность: как часто тест замечает реальный эффект.

Помните: мощность имеет смысл сравнивать между тестами только тогда, когда они одинаково держат α в A/A. Иначе высокая мощность может быть просто следствием завышенной ошибки I рода.

A/A-тесты — контроль ошибки I рода

Сценарий 1: H₀ верна, размер выборок и дисперсии равны

Установите: n₁ = n₂ = 15, SD₁ = SD₂ = 1, Δ = 0. ↑ к симуляции

Все тесты должны давать долю ошибок первого рода ≈ \(\alpha\), и действительно, все четыре теста держат α на заданном уровне. Гистограммы p-value близки к равномерному распределению.

✅ Все четыре теста близки к заданной α.

Сценарий 2: H₀ верна, размеры выборок равны, дисперсии разные

Установите: n₁ = n₂ = 15, SD₁ = 1, SD₂ = 3, Δ = 0. ↑ к симуляции

Неравенство дисперсий не сильно влияет на характеристики теста Стьюдента при равных размерах выборок, это было показано и в статье для больших выборок. Непараметрические тесты тоже работают корректно.

✅ Все четыре теста близки к заданной α.

Сценарий 3: H₀ верна, разные дисперсии и размер выборок, при этом в меньшей выборке дисперсия больше

Установите: n₁ = 30, n₂ = 8, SD₁ = 1, SD₂ = 3, Δ = 0. ↑ к симуляции

Это пример, где тест Стьюдента начинает работать хуже: маленькая выборка с большой дисперсией. В статье для больших выборок (9000 vs 1000) Стьюдент давал до 24% ложных срабатываний. На малых выборках эффект тоже заметен, в этом сценарии около 25% вместо 5%. Велч держит α (≈ 5%).

Манн-Уитни тоже завышает ошибку первого рода (≈ 13%) — при разных дисперсиях у него ломается формула стандартной ошибки (разбирали выше). А тест Бруннера-Мюнцеля этого недостатка лишён и держит α заметно лучше (≈ 6%) — многие поэтому рекомендуют по умолчанию именно его.

  • ❌ Тест Стьюдента, тест Манна-Уитни

  • ✅ Тест Велча, тест Бруннера-Мюнцеля

Предлагаю менять n₂ при фиксированных n₁ = 30, SD₁ = 1, SD₂ = 3, Δ = 0, чтобы посмотреть, как меняется ошибка первого рода в тесте Стьюденте в зависимости от дисбаланса:

  • n₂ ≈ n₁: это сценарий 2, с ошибкой первого рода все ок.

  • n₂ << n₁ (маленькая выборка с большой дисперсией): Стьюдент завышает α — вплоть до ~40% при n₂ = 5, SD₂ = 4;

  • n₂ >> n₁ (большая выборка с большой дисперсией): Стьюдент, наоборот, занижает α, становясь излишне консервативным.

Сценарий 4: H₀ верна, экспоненциальное распределение

Установите: n₁ = n₂ = 15, SD₁ = SD₂ = 1, Δ = 0, распределение = Экспоненциальное. ↑ к симуляции

Экспоненциальное распределение сильно асимметрично. Как справятся тесты при проверке ошибки I рода?

✅ При равных n все четыре теста контролируют ошибку первого рода в пределах нормы даже на малых выборках.

Дальше предлагаю самостоятельно проверить, что будет с тестами при разных дисперсиях и размере выборок, а мы пока переходим к работе тестов “при гипотезе” (как сказал бы уважаемый Матвей Славенко).

A/B-тесты — анализ мощности

Сценарий 5: H₀ неверна, есть реальный эффект, размеры выборок и дисперсии равны

Установите: n₁ = n₂ = 15, SD₁ = SD₂ = 1, Δ = 1. ↑ к симуляции

При Δ = 1 и n = 15 мощность всех тестов ~ 70–75%. При увеличении n до 25, мощность вырастет до > 90%.

✅ Манн-Уитни и Бруннер-Мюнцель на нормальных данных немного уступают параметрическим тестам в мощности — это неудивительно, так как перевод в ранги обычно приводит к небольшой потере мощности (здесь MW ≈ 71%, остальные ≈ 74%).

Сценарий 6: H₀ неверна, есть выбросы – преимущество ранговых тестов

Установите: n₁ = n₂ = 15, SD₁ = SD₂ = 1, Δ = 0.5, распределение = Логнормальное (выбросы). ↑ к симуляции

Разрыв значительный: мощность Манна-Уитни ≈ 75% и Бруннера-Мюнцеля ≈ 74% против ≈ 43% у обоих t-тестов. Дело в том, что одно экстремальное значение сильно увеличивает выборочную дисперсию (знаменатель дроби), и t-статистика проседает. Ранговые тесты к таким выбросам устойчивы.

Сценарий 7: H₀ неверна, в меньшей выборке дисперсия больше – у теста Велча проблемы?

Установите: n₁ = 50, SD₁ = 0.5, n₂ = 15, SD₂ = 5, Δ = 2.5. ↑ к симуляции

WarningЧто наблюдаем

Стьюдент показывает высокую мощность (≈ 80%), Велч заметно ниже (≈ 43%), Манн-Уитни ≈ 58%, Бруннер-Мюнцель ≈ 34%. Кажется, что тест Стьюдента лучший, но это не совсем так: при таком же дисбалансе и верности нулевой гипотезы (см. Сценарий 3) он завышает ошибку I рода. Мощность сравнима между тестами только при одинаково контролируемой α.

Тест Велча отражает большую неопределённость маленькой шумной группы через уменьшенные степени свободы (df ≈ 14 вместо 63). Низкая мощность здесь неудивительна, так как надёжно поймать эффект при такой комбинации (мало наблюдений + огромная дисперсия во второй группе) объективно трудно. Тест Велча контролирует ошибку первого рода на уровне альфа, что приводит к большей консервативности и потери мощности, это неизбежное следствие.

Все дальнейшие комбинации параметров доступны на ваш вкус, наверняка здесь еще остались интересные инсайты.

Выводы

На основании симуляций на малых выборках (n = 5–50):

Поведение тестов на малых выборках
Сценарий Стьюдент Велч Манн-Уитни Бруннер-Мюнцель
A/A — контроль ошибки I рода
Равные SD, равные n
Разные SD, равные n
Разные SD, разные n (в меньшей выборке большее SD)
A/B — оценка мощности
Нормальные данные, равные SD, n 🟡
Выбросы / тяжёлые хвосты 🟡 🟡
Разные SD, разные n (в меньшей выборке большее SD) ⚠️ 🟡 🟡 🟡

Рекомендации:

  1. По умолчанию используйте тест Велча — он надёжен во всех разобранных ситуациях, как на больших, так и на малых выборках.
  2. Классический тест Стьюдента имеет смысл только когда вы уверены в равенстве дисперсий, но если это так, результаты практически не будут отличаться от теста Велча.
  3. Тест Бруннера-Мюнцеля — если нужна непараметрика и дисперсии/формы распределений разные. Он сохраняет устойчивость рангового подхода к выбросам (как Манн-Уитни), но при этом держит α при гетероскедастичности (как Велч) — можно приближенно сказать, что это ранговый аналог Велча (спасибо Евгению Бакину и чатику BioStat <- R за наводку).

А как же позиция «Велч не нужен по умолчанию»?

Есть точка зрения, что менять Стьюдента на Велча по умолчанию не стоит (разбор от X5 Tech, Серега, про тебя помню). Аргументы такие:

  1. Велч урезает степени свободы и теряет мощность.
  2. Чистая гетероскедастичность редка (аргумент Sawilowsky): «мы никогда не встречали воздействия, которое меняет дисперсии, оставляя средние строго равными» — на практике эффект двигает и среднее, и разброс, так что сценарии A/A с разными SD при Δ = 0 искусственны.
  3. На больших сбалансированных выборках (классический A/B-тест 50/50) Стьюдент и так контролирует α при любой дисперсии, поэтому заменять его не на что.

Это все валидно, но не противоречит выводам выше:

  • Потеря мощности у Велча почти нулевая при равных n. В симуляциях при n₁ = n₂ разница мощности Стьюдента и Велча — доли процентного пункта, даже при сильно неравных дисперсиях. Заметная потеря возникает только в случае «малые N + дисбаланс + сильно неравные SD», но именно там у Стьюдента нарушается α. Так что тут никак иначе, мы либо лучше контролируем ошибку первого рода и чуть теряем в мощности, либо ошибка первого рода серьезно завышается, но зато не теряем в мощности. Тут скорее нужно оценить, какая ошибка для нас страшнее и неприятнее – не найти реальный эффект или найти эффект, где его нет (читай: не раскатить успешный A/B или раскатить “серый” A/A).
  • A/B-тесты vs малые выборки. В продуктовых A/B-тестах выборки большие, а сплит контролируемый (часто 50/50, хотя бывают и варианты с тестированием только на 10% аудитории). В случае равного сплита Стьюдент и Велч практически тождественны, и нет большой разницы, что именно применять. В данном посте мы разобрали подробно малые неконтролируемые выборки в биологии и медицине, где исследователь не управляет ни балансом групп, ни их дисперсиями. Кроме этого, в медицине часто ошибка первого рода страшнее, а именно ее тест Велча контролирует на заданном уровне.

Иными словами: если вы уверены в равных n и равных дисперсиях, то Стьюдент и Велч дадут одно и то же. А если вы не уверены, то тест Велча обычно точнее (хоть и консервативнее, но такова жизнь).

ImportantГлавный вывод

Рекомендация предыдущего поста использовать тест Велча по умолчанию подтверждается на малых выборках. Проблема теста Стьюдента с неравными дисперсиями и разными n проявляется и на небольших выборках (n = 5–30).

Контраргумент «Велч теряет мощность» справедлив в основном для больших сбалансированных A/B-тестов; на небольших выборках в науке цена этой потери мощности близка к нулю, а вот защита от завышенной ошибки I рода реально важна.


Подписывайтесь на телеграм-канал, пишите комментарии!