SHAPE \* MERGEFORMAT
Критерий Колмогорова-Смирнова (часто сокращенно K-S тест) — это непараметрический тест, используемый для проверки, подчиняется ли выборка данных определенному распределению, или для сравнения двух выборок. В контексте проверки нормальности, он используется для проверки гипотезы о том, что данная выборка происходит из нормального распределения.
Как работает критерий Колмогорова-Смирнова для проверки нормальности:
Формулировка гипотез:
Нулевая гипотеза (H0): Выборка данных взята из генеральной совокупности, имеющей нормальное распределение. Альтернативная гипотеза (H1): Выборка данных не взята из генеральной совокупности, имеющей нормальное распределение.
Эмпирическая функция распределения (ECDF): Для данной выборки рассчитывается эмпирическая функция распределения, которая представляет собой ступенчатую функцию, показывающую долю наблюдений, меньших или равных заданному значению. Теоретическая функция распределения: В случае проверки нормальности, строится теоретическая кумулятивная функция распределения (CDF) нормального распределения с параметрами, оцененными по выборке (среднее и стандартное отклонение). Статистика теста (D): Вычисляется статистика теста Колмогорова-Смирнова (D), которая представляет собой максимальное абсолютное расстояние между эмпирической и теоретической функциями распределения.
5. D = max |ECDF(x) — CDF(x)|
Где:
ECDF(x) — эмпирическая функция распределения. CDF(x) — теоретическая функция распределения (в данном случае, нормального распределения).
P-значение (p-value): На основе статистики теста D и размера выборки вычисляется p-значение. P-значение показывает вероятность получить такое или большее значение статистики теста, если нулевая гипотеза верна. Принятие решения: P-значение сравнивается с уровнем значимости (alpha), обычно 0.05.
Если p-значение <= alpha: Отклоняем нулевую гипотезу. Делаем вывод, что данные не подчиняются нормальному распределению. Если p-значение > alpha: Не отклоняем нулевую гипотезу. Нет достаточных оснований утверждать, что данные не подчиняются нормальному распределению.
Преимущества критерия Колмогорова-Смирнова:
Непараметрический тест: Не требует предположений о распределении данных (кроме проверяемого). Применим для различных распределений: Может использоваться для проверки соответствия выборки не только нормальному, но и любому другому заданному распределению.
Недостатки критерия Колмогорова-Смирнова:
Менее мощный, чем некоторые другие тесты на нормальность: В частности, менее мощный, чем тест Шапиро-Уилка, особенно для выборок небольшого размера. Чувствителен к выбросам: Выбросы могут существенно повлиять на статистику теста D и привести к отклонению нулевой гипотезы, даже если основная часть данных подчиняется нормальному распределению.
Когда использовать критерий Колмогорова-Смирнова для проверки нормальности:
Когда нет оснований предполагать какое-либо конкретное распределение данных, кроме нормального. Когда размер выборки небольшой (хотя для очень маленьких выборок мощность теста может быть недостаточной). Когда необходимо сравнить две выборки и проверить, происходят ли они из одного и того же распределения (в этом случае используется двухвыборочный критерий Колмогорова-Смирнова).
Альтернативные тесты на нормальность:
Тест Шапиро-Уилка (Shapiro-Wilk test): Один из самых мощных тестов на нормальность, особенно для небольших выборок. Рекомендуется использовать, если размер выборки меньше 50. Тест Д’Агостино-Пирсона (D’Agostino-Pearson test): Еще один мощный тест на нормальность, основанный на анализе асимметрии и эксцесса распределения. Lilliefors test: Модификация теста Колмогорова-Смирнова, предназначенная специально для проверки нормальности, когда параметры нормального распределения оцениваются по выборке.
Как выполнить тест Колмогорова-Смирнова в Python (пример):
From scipy. stats import kstest
Import numpy as np
# Сгенерируем случайную выборку из нормального распределения
Data = np. random. normal(loc=0, scale=1, size=100)
# Выполним Тест Колмогорова—Смирнова
Statistic, p_value = kstest(data, ‘norm’)
# Выведем результаты
Print("Статистика теста:", statistic)
Print("P-значение:", p_value)
# Примем Решение
Alpha = 0.05
If p_value <= alpha:
print("Отклоняем нулевую гипотезу: данные не подчиняются нормальному распределению")
Else:
print("Не отклоняем нулевую гипотезу: нет достаточных оснований утверждать, что данные не подчиняются нормальному распределению")
В заключение, критерий Колмогорова-Смирнова — полезный инструмент для проверки нормальности, но его следует использовать с осторожностью, учитывая его ограничения и возможные альтернативы. Важно помнить, что ни один тест не может однозначно доказать нормальность распределения, и всегда следует анализировать данные визуально (например, с помощью гистограмм и QQ-графиков) для получения более полной картины.