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

Как устроен тест в статистике?

2.0 Middle🔥 141 комментариев
#Статистика и A/B тестирование

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

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

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

Структура статистического теста

Статистический тест — это формализованная процедура для проверки гипотезы на основе данных. Каждый тест имеет четкую структуру и логику работы.

1. Формулировка гипотез

Каждый тест начинается с двух взаимоисключающих гипотез:

  • H0 (нулевая гипотеза) — утверждение об отсутствии эффекта. Мы предполагаем её верной до доказательства обратного
  • H1 (альтернативная гипотеза) — утверждение о наличии эффекта

Примеры:

H0: средние значения в двух группах равны (μ1 = μ2)
H1: средние значения различаются (μ1 ≠ μ2)

H0: признаки независимы (корреляция = 0)
H1: признаки зависимы (корреляция ≠ 0)

2. Выбор уровня значимости (alpha)

Определяю вероятность ошибки первого рода (отклонить H0, когда она верна):

alpha = 0.05  # стандартное значение в 95% случаев
# или
alpha = 0.01  # более строгое, 99% уверенность

Это критическое значение, которое сравниваю с p-value.

3. Расчет тестовой статистики

На основе данных вычисляю статистику, которая показывает, насколько данные отклоняются от H0:

import scipy.stats as stats
from scipy import stats

# T-тест: сравнение средних двух групп
from scipy.stats import ttest_ind

group1 = [2.3, 2.5, 2.8, 3.0, 3.2]
group2 = [1.8, 2.0, 2.2, 2.4, 2.6]

t_statistic, p_value = ttest_ind(group1, group2)
print(f"t-статистика: {t_statistic}")
print(f"p-value: {p_value}")

Таких статистик много:

  • t-статистика для сравнения средних
  • chi-square для категориальных данных
  • z-статистика для больших выборок
  • F-статистика для ANOVA

4. Вычисление p-value

p-value — это вероятность получить такую же или более экстремальную статистику при условии, что H0 верна:

# Односторонний тест (H1: μ1 > μ2)
p_value_one_sided = p_value / 2

# Двусторонний тест (H1: μ1 ≠ μ2) — используется по умолчанию
p_value_two_sided = p_value

Не путайте p-value с вероятностью того, что H0 верна! p-value — это вероятность данных при условии H0.

5. Принятие решения

Сравниваю p-value с alpha:

if p_value < alpha:
    print("Отвергаем H0, принимаем H1")
    print("Результат статистически значим")
else:
    print("Не отвергаем H0")
    print("Недостаточно доказательств")

Пример полного теста

import numpy as np
from scipy.stats import ttest_ind

# Данные: контрольная и тестовая группы
control = np.array([10.2, 10.5, 10.8, 11.0, 11.2])
treatment = np.array([12.1, 12.5, 12.8, 13.0, 13.2])

# H0: средние равны
# H1: средние различаются
alpha = 0.05

t_stat, p_val = ttest_ind(control, treatment)

print(f"t-статистика: {t_stat:.4f}")
print(f"p-value: {p_val:.4f}")
print(f"Альфа: {alpha}")

if p_val < alpha:
    print(f"Результат значим (p < {alpha})")
    print("Лечение имеет эффект")
else:
    print(f"Результат не значим (p >= {alpha})")
    print("Нет доказательств эффекта")

Типы ошибок

РеальностьОтвергаем H0Принимаем H0
H0 вернаОшибка I рода (α)Верное решение
H0 невернаВерное решениеОшибка II рода (β)
  • Ошибка I рода (Type I, False Positive): отвергли верную H0. Вероятность = alpha
  • Ошибка II рода (Type II, False Negative): принял неверную H0. Вероятность = beta
  • Мощность теста = 1 - beta (вероятность отвергнуть H0, когда она неверна)

Предположения статистических тестов

Каждый тест имеет предположения, которые нужно проверять:

# T-тест требует нормальное распределение
from scipy.stats import shapiro

stat, p = shapiro(group1)
if p > 0.05:
    print("Данные нормально распределены")
else:
    print("Данные не нормальны, используй Mann-Whitney")

# Проверка гомогенности дисперсий
from scipy.stats import levene
stat, p = levene(group1, group2)

Важные принципы

  • Статистическая значимость ≠ практическая значимость: маленький эффект может быть значим на большой выборке
  • Размер выборки важен: большая выборка увеличивает мощность теста
  • Множественное тестирование: если делаешь много тестов, нужна коррекция (Bonferroni, FDR)
  • Доверительные интервалы: дополняют p-value информацией об эффекте
Как устроен тест в статистике? | PrepBro