Понятный ML - Статьи по машинному обучению
Назад к статьям

Тест на нормальность (Normality Test)

Елена Капаца
15 мин

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

Машинное обучение

Тест на нормальность (Normality Test) — это метод статистического анализа, используемый для проверки того, соответствует ли выборка данных нормальному (гауссовскому) распределению. Нормальное распределение имеет ключевое значение в статистике, так как многие статистические методы и тесты предполагают, что данные соблюдают это распределение.

### Зачем необходим тест на нормальность?

1. Выбор подходящих тестов: Многие статистические тесты, такие как t-тест и ANOVA, предполагают нормальность данных. Если ваши данные не нормальны, результаты этих тестов могут быть недостоверными.

2. Проверка предпосылок моделей: При использовании линейной регрессии и других моделей важно убедиться, что ошибки следуют нормальному распределению.

Существует несколько методов для тестирования нормальности данных:

1. Визуальные методы:

   - Гистограммы

   - Q-Q графики (Quantile-Quantile Plots)

2. Статистические тесты:

   - Тест Шапиро-Уилка

   - Тест Колмогорова-Смирнова

   - Тест Андерсона-Дарлинга

В этом примере мы будем использовать тест Шапиро-Уилка с помощью библиотеки scipy.stats в Python, чтобы проверить нормальность случайной выборки данных.

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
# Генерация случайных данных с нормальным распределением
data = np.random.normal(loc=0, scale=1, size=1000)
# Выполнение теста Шапиро-Уилка
statistic, p_value = stats.shapiro(data)
print(f'Статистика теста: {statistic}, p-значение: {p_value}')
# Интерпретация p-значения
alpha = 0.05
if p_value > alpha:
    print('Необходимо отклонить нулевую гипотезу: данные нормально распределены.')
else:
    print('Отклоняем нулевую гипотезу: данные не нормально распределены.')

Мы используем функцию shapiro() из библиотеки scipy.stats, чтобы провести тест на нормальность. Результаты включают значение статистики и p-значение.