Тест Шапиро-Уилка (Shapiro-Wilk Test)
Популярный статистический метод проверки гипотезы о нормальности распределения выборки
Тест Шапиро-Уилка: проверка нормальности распределения
Тест Шапиро-Уилка — это один из самых популярных статистических методов проверки гипотезы о нормальности распределения выборки. Он особенно эффективен на небольших выборках (до 2000 наблюдений) и часто используется в машинном обучении, медицине, психологии и других областях, где важно проверить предпосылки для параметрических тестов.
Идея метода заключается в сравнении упорядоченных наблюдений с ожидаемыми значениями нормального распределения. Статистика теста отражает, насколько близка выборка к нормальной кривой. Результатом является p-value, по которому принимается решение.
Формулировка гипотез:
- H0 (нулевая гипотеза): данные распределены нормально
- H1 (альтернативная гипотеза): данные не распределены нормально
Интерпретация:
Если p-value > 0.05, то у нас нет оснований отвергнуть H0, и данные можно считать нормальными.
Если p-value <= 0.05, то H0 отвергается, и данные не являются нормальными.
Пример на Python:
python
import numpy as np
from scipy.stats import shapiro
Генерируем данные
normal_data = np.random.normal(loc=0, scale=1, size=100)
non_normal_data = np.random.exponential(scale=1, size=100)
Тест Шапиро-Уилка
stat1, p1 = shapiro(normal_data)
stat2, p2 = shapiro(non_normal_data)
print('Нормальные данные: статистика =’, stat1, ', p =’, p1)
print('Ненормальные данные: статистика =’, stat2, ', p =’, p2)
if p1 > 0.05:
print(‘Выборка normal_data распределена нормально’)
else:
print(‘Выборка normal_data не является нормальной’)
if p2 > 0.05:
print(‘Выборка non_normal_data распределена нормально’)
else:
print(‘Выборка non_normal_data не является нормальной’)