← Назад к вопросам

Можно ли t-тест использовать для ненормальных распределений?

2.0 Middle🔥 201 комментариев
#Статистика и теория вероятностей#Статистические критерии и тесты

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Использование t-теста при ненормальных распределениях

Да, t-тест можно использовать для ненормальных распределений, но с существенными оговорками и условиями. Это частый вопрос в статистике, и ответ зависит от конкретной ситуации.

Основной принцип: Центральная предельная теорема

Ключевая концепция — Центральная предельная теорема (ЦПТ). При достаточно большом размере выборки распределение выборочных средних стремится к нормальному распределению, независимо от распределения исходных данных. Это означает:

  • При n > 30-50 (часто рекомендуется порог 30) t-тест остаётся относительно робастным даже для ненормальных данных
  • Чем больше выборка, тем менее критична нормальность исходного распределения
  • Для малых выборок (n < 30) нарушение нормальности становится проблемой

Когда t-тест работает при ненормальности

Благоприятные условия:

  1. Большой размер выборки (n ≥ 100) — даже при отклонении от нормальности результаты надёжны
  2. Одностороннее распределение — t-тест более чувствителен к асимметрии, чем к остальным отклонениям
  3. Симметричные отклонения — если распределение симметрично, но не нормально, t-тест работает лучше
  4. Одинаковые объёмы групп — при равных n₁ и n₂ тест более робастен

Когда t-тест не рекомендуется

Проблемные ситуации:

  • Малая выборка (n < 20) с явной ненормальностью
  • Выраженная асимметрия (skewness > 2)
  • Наличие выбросов — экстремальные значения сильно влияют на t-статистику
  • Категориальные данные (t-тест для них не применим)
  • Разные дисперсии в группах при малых выборках

Практические альтернативы

Если данные сильно нарушают нормальность и выборка мала:

Непараметрические тесты:

from scipy import stats
statistic, p_value = stats.mannwhitneyu(group1, group2, alternative='two-sided')
print(f'U-статистика: {statistic}, p-value: {p_value}')

Трансформация данных:

import numpy as np
transformed_data = np.log(data)

Вывод

T-тест — робастный тест, но не универсальный. При большом размере выборки t-тест работает, при малом — проверяйте предположения и рассмотрите альтернативы.

Можно ли t-тест использовать для ненормальных распределений? | PrepBro