Как проверить является ли распределение нормальным
Две статьи тому назад я писал о том, как при помощи HR аналитики можно оценить эффективность учебного мероприятия (ссылка).
Тогда коллеги-аналитики справедливо сделали замечание о том, а были ли проведены тесты на нормальность распределения?
А другие коллеги, тоже из среды умножающих в уме 5-значные цифры, поинтересовались расчетом мощности t-теста, поскольку выборка в итоговом расчете была маловата.
Справедливо и первое и второе замечание.
В предыдущем материале, все эти расчеты остались за кадром. В данной статье я пролью свет на выше озвученные комментарии.
Проверка на нормальность распределения
Для применения многих статистических методов, нормальность распределения исследуемых переменных, является важным условием. Т. е. нам нужно ответить на вопрос: а подчиняются ли закону нормального распределения наши количественные переменные, которые мы хотим исследовать?
Для решения этой задачи, зачастую, используют два взаимодополняющих подхода:
- Графический метод
- Формальные тест
Как читать такие графики?
Q-Q plots изображают квантили двух распределений.
По оси Y изображены эмпирические данные (т.е. наши реальные исследуемые данные), а по оси Х — теоретически ожидаемого нормального распределения.
В идеальной картинке, т. е., когда наше распределение нормальное, все точки должны выстроиться вдоль прямой красной линии.
Интерпретация таких графиков требует определенного опыта и навыка. Небольшое количество наблюдений (как в рассматриваемом примере) может не всегда образовывать четкую прямую линию.
Сейчас можно обратить внимание на два отклонения в верхнем правом углу, как на первом, так и на втором графике.
Давайте нарисуем еще один похожий график:
На данных Q-Q plots графиках пунктирными линиями изображен 95% доверительный интервал, который ограничивает допустимые отклонения от нормального распределения.
Мы снова можем наблюдать, что по два наблюдения на каждом графике выходят за данные границы.
Формальные тесты
Графический метод оценки нормальности распределения дает первое представление об исследуемых данных. Для того чтобы принять окончательное решение о нормальности распределения, следует применить формальные тесты.
Существует целый набор тестов специально разработанных для этого задачи:
- тест Шапиро-Уилка
- тест Андерсона-Дарлинга
- тест Крамера фон Мизеса
- тест Лиллиефорса
Давайте применим все выше перечисленные тесты для наших выборок.
Как видим из результатов примененных тестов на нормальность распределения, мы не можем отклонить нулевую гипотезу (H0) о том, что наша выборка происходит из генеральной совокупности с нормальным распределением.
Расчет статистической мощности t-критерия Стьюдента
Мощность критерия — это его способность найти различия, которые мы ищем там, где они действительно существуют. Считается, что мощность критерия на уровне 0.8 и выше является приемлемой.
Для более детального понимания, давайте рассмотрим три величины: размер выборки, мощность критерия и величина эффекта. Они взаимосвязаны. Зная любые два из этих параметров, третий мы всегда можем рассчитать.
Например, если эффект, который мы хотим обнаружить маленький, тогда нам понадобится большая выборка. А если у нас в распоряжении выборка поменьше, это будет означать, что мощность теста будет низкая.
С другой, стороны, если эффект, который мы ищем, ярко выражен, тогда нам понадобиться гораздо меньшая выборка, чтобы достичь мощности теста на уровне 0.8.
Также, зная размер выборки и величину эффекта, мы можем рассчитать мощность нашего теста. Давайте это и сделаем для нашего t-критерия Стьюдента из прошлого исследования, когда мы определяли эффективность мастер-класса (ссылка).
Для расчета мощности критерия нам нужно будет задать следующие величины:
- Количество пар наблюдений в наших выборках (у нас был парный t-тест): 10
- Величина эффекта (это разность между средними значения наших двух выборок «до» и «после»): 235
- Стандартное отклонение разниц между каждой парой: 213

Из расчета выше мы видим, что при заданных условиях, мощность проведенного нами t-теста в ходе предыдущего исследования, равняется 0.94. Т. е. мощность нашего теста высокая.
Это продиктовано тем, что, при достаточно небольшой выборке в 10 наблюдений мы хотели обнаружить достаточно большой эффект (разницу в скорости чтения в 235 слов).
А теперь давайте рассчитаем, какой эффект мог бы обнаружить наш t-тест при той же выборке n= 10 и уровне мощности 0.8.

Теперь мы видим, что понизив уровень мощности теста, мы смогли бы обнаружить гораздо меньший эффект, который равняется delta= 182.
А если бы мы захотели найти еще менее выраженный эффект, например, в 100 слов и оставить уровень мощности t-теста, как в самом первом нашем примере power= 0.94, тогда нам понадобилась бы гораздо большая выборка. Давайте проведем ее расчет:

При таких параметрах, мы видим, что нам нужна была бы выборка в 48 пар.
Для лучшего понимания понятия «мощность t-критерия Стьюдента» и большей наглядности, давайте построим несколько графиков.
Первый будет показывать нам, как связан размер выборки с величиной эффекта, который мы пытаемся обнаружить:

Из графика мы видим, что чем меньший эффект мы хотим обнаружить, тем большая выборка нам потребуется для этого.
А теперь давайте посмотрим на график взаимосвязи размера выборки и мощности статистического теста при заданной величине эффекта:

Данная кривая показывает, что с увеличением выборки мощность теста также возрастает.
Вывод
1. Мы проверили наши две выборки на нормальность распределения. Формальные статистические тесты подтвердили их принадлежность к таковым.
2. Мы рассчитали мощность парного одностороннего t-критерия Стьюдента, который применяли в ходе предыдущего исследования (ссылка ). Мощность критерия составляет: 0.94.
Занятие 6. Проверка нормальности распределения значений признака
Классическим параметрическим методом, позволяющим сравнить средние значения изучаемого признака, рассчитанные на основе двух выборок, является t-тест Стьюдента (или просто «t-тест»).
Критерий Стьюдента (t-тест Стьюдента или просто «t-тест») применяется, если нужно сравнить только две группы количественных признаков с нормальным распределением (частный случай дисперсионного анализа). Но применение его является оправданным лишь примерно в 20% случаев! Этим критерием нельзя пользоваться, сравнивая попарно несколько групп, в этом случае необходимо применять дисперсионный анализ. Ошибочное использование критерия Стьюдента увеличивает вероятность «выявить» несуществующие различия. Например, вместо того, чтобы признать несколько методов лечения равно эффективными (или неэффективными), один из них объявляют лучшим.
Применение «t-теста» допустимо при наличии следующих условий:
- соответствие частотного распределения данных в каждой из сравниваемых групп закону нормального распределения;
- отсутствие статистически значимой разницы между дисперсиями сравниваемых групп (однородность дисперсий).
- наличие достаточно большого числа наблюдений в обеих сравниваемых группах (не меньше 20).
Если данные условия не соблюдать, то применение теста Стьюдента приведет к ошибочным результатам. Наиболее «опасным» является несоблюдение требования о нормальности распределения значений признака в каждой из сравниваемых группах. Существует достаточно большое число способов проверить, соответствуют ли анализируемые данные нормальному распределению. Мы рассмотрим три подхода, реализованные в программе STATISTICA.
На рисунке 1 представлены данные о количестве лейкоцитов у 50 пациентов с перитонитом. Необходимо установить, распределены ли эти данные по нормальному закону.

Рисунок 1. Количество лейкоцитов у пациентов с перитонитом
В программе STATISTICA имеется специальный модуль для проверки соответствия данных тому или иному закону распределения случайных величин — Distribution Fitting (Подгонка распределений). Этот модуль можно запустить из пункта главного меню Statistics , или нажав на кнопку на дополнительной панели инструментов (ввод данной панели описан в занятии 1).

Рисунок 2. Выбор специального модуля — Distribution Fitting (Подгонка распределений)
Внешний вид окна модуля приведен на рисунке 2.

Рисунок 3. Модуль Distributions fitting программы STATISTICA
Как видно на приведенном рисунке, в программе STATISTICA можно сравнивать эмпирические распределения со многими теоретическими законами распределения случайных величин.
Поскольку мы хотим проверить, подчиняются ли данные о количестве лейкоцитов пациентов нормальному распределению, в списке непрерывных распределений ( Continuous distributions ) выбираем Normal и жмем ОК. Далее появится еще одно окошко (рисунок 4), где необходимо указать программе, какую именно переменную мы хотим проанализировать, и как. Переменная для анализа задается путем нажатия кнопки Variables . Остальные настройки можно оставить неизменными.

Рисунок 4. Окно Fitting continuous distributions (Подгонка непрерывных распределений) модуля Distribution fitting
Нажав на кнопку Plot of observed and expected distributions (Изобразить наблюдаемое и ожидаемое распределения), получим гистограмму распределения данных о количестве лейкоцитов и колоколообразную красную кривую (рисунок 5), соответствующую ожидаемому нормальному распределению (у него те же средняя арифметическая и стандартное отклонение, что и в анализируемой совокупности) .

Рисунок 5. Графический результат анализа, выполненного в модуле Distribution Fitting
В целом распределение значений анализируемого признака на рисунке совпадает с нормальным (столбики гистограммы примерно выстраиваются в колоколообразную фигуру). Это заключение, основанное на визуальном анализе распределения, имеет и более строгое подтверждение в виде результатов теста хи-квадрат ( Chi-square test , см. в верхней части графика). Данный тест проверяет нулевую гипотезу о том, что наблюдаемое распределение признака не отличается от теоретически ожидаемого нормального распределения. Поскольку вероятность справедливости этой гипотезы Р оказалась больше 0.05 (0.43850), мы принимаем, что она действительно верна.
Однако, следует отметить, что мощность теста хи-квадрат при проверке нормальности распределения относительно невысока. Поэтому лучше воспользоваться другими тестами.
Их можно найти в модуле Descriptive Statistics (Описательная статистика), который находится здесь: Statistics > Basic Statistics/Tables. После запуска этого модуля необходимо открыть закладку Normality и в поле Distribution (Распределение) разыскать опции Kolmogorov-Smirnov and Lilliefors test for normality (Тест Колмогорова-Смирнова и Лиллиефорса на нормальность) и Shapiro-Wilk’s W test (W-тест Шапиро-Уилка) (рисунок 6).

Рисунок 5. Окно модуля Descriptive Statistics на закладке Normality
Равно как и критерий хи-квадрат, оба эти теста проверяют гипотезу об отсутствии различий между наблюдаемым распределением признака и теоретически ожидаемым нормальным распределением. Наиболее предпочтительным является использование W-критерия Шапиро-Уилка, поскольку он обладает наибольшей мощностью в сравнении со всеми перечисленными критериями (т.е. чаще выявляет различия между распределениями в тех случаях, когда они действительно есть).
Для выбора того или иного теста, достаточно поставить флажок рядом с его названием. После выбора анализируемой переменной (кнопка Variables) и нажатия кнопки Histograms программа нарисует график с гистограммой распределения значений признака и ожидаемую нормальную кривую (рисунок 6). Результаты тестов на нормальность автоматически располагаются в заголовке этого графика. Как и ранее, при Р > 0.05 следует вывод о том, что анализируемое распределение не отличается от нормального.

Рисунок 6. Результат проверки нормальности распределения данных, выполненной при помощи модуля Descriptive Statistics

ЛЮБОЕ изучение количественного параметра начинается с изучения его распределения. Одним из важных моментов является проверка распределения на соответствие предположения о его «нормальности» (соответствие предположения, что распределение является Гауссово).
Существуют 2 способа проверки: графический и численный (количественный).
Графический способ проверки предполагает изучение гистограммы распределения, построение квантильных диаграмм.
Численные способы представлены изучением характеристик распределения: среднее арифметическое, гармоническое, медиана; дисперсия, коэффициенты вариации ангармонизма, эксцесса. Для проверки гипотезы о нормальности распределения существуют и количественные тесты: стандартно — Колмогорова-Смирнова, Лиллифорс, Шапиро-Уилка. В последнее время все шире начинают использовать более современные тесты: Шапиро-Франка, Андерсона-Дарлинга, Крамера-фон-Мизеса.
Кроме формальной проверки распределения на нормальность следует выполнить также попытки нормализации данных обратимыми функциями: логарифмирование, пробразование Бокса-Кокса, др. с последующим изучением распределения преобразованных данных.
Следует предостеречь от формального «соответствует/не соответствует». Как правило, мы не знаем истинного распределения данных. На основе выполненного анализа МЫ принимаем решение о соответствии или несоответствии распределения. Т.е., ВСЕГДА речь идет о принятом нами решении.

С помощью STATISTICA можно быстро оценить, достаточно ли хорошо реальное распределение моделируется некоторым теоретическим. При этом алгоритм такой оценки остаётся «за кадром». Это иногда может быть недостатком, особенно при обучении статистическим методам. В этом случае полезно использовать MS Excel, что позволяет выполнять оценку пошагово, усваивая сущность алгоритма, но избавляясь от рутинных расчётов. При этом можно создавать пересчитываемые электронные таблицы, автоматически выдающие результат при вводе новых данных. Методики оценки распределения при помощи MS Excel несколькими способами можно найти на http://arhiuch.ru.

Проверка нормальноси распределения по различным общим и специальным криериям согласия в MS Excel описана на http://arhiuch.ru

спасибо, это лучшее объяснение для чайника.
Добавление комментариев доступно только зарегистрированным пользователям
Основы доказательной медицины. Биомедицинская статистика.
- Авторское право. Патентоведение.
- Основы доказательной медицины. Биомедицинская статистика.
- Искусство выступать публично
- Защита в срок. Тайм-менеджмент: эффективное управление временем
- Современные клинико-диагностические технологии
- Мастер-классы
- Клиническое питание
- Научные программы. Международные проекты.
Автор статьи:

Ольга Светлицкая
Председатель Совета молодых ученых (СМУ), кандидат медицинских наук, доцент кафедры анестезиологии и реаниматологии БелМАПО.
Проверка на нормальность
Тестирование данных на нормальность часто является первым этапом их анализа, так как большое количество статистических методов исходит из предположения нормальности распределения изучаемых данных.
Например, пусть необходимо проверить гипотезу о равенстве средних значений в двух независимых выборках. Для этой цели подходит критерий Стьюдента. Но применение критерия Стьюдента обосновано, только если данные подчиняются нормальному распределению. Поэтому перед применением критерия необходимо проверить гипотезу о нормальности исходных данных. Или проверка остатков линейной регрессии на нормальность — позволяет проверить, соответствует ли применяемая модель регрессии исходным данным.
Нормальное распределение естественным образом возникает практически везде, где речь идёт об измерении с ошибками. Более того, в силу центральной предельной теоремы, распределение многих выборочных величин (например, выборочного среднего) при достаточно больших объёмах выборки хорошо аппроксимируется нормальным распределением вне зависимости от того, какое распределение было у выборки исходно. В связи с этим становится понятным, почему проверке распределения на нормальность стоит уделить особое внимание. В дальнейшем речь пойдёт о так называемых критериях согласия (goodness-of-fit tests). Проверяться будет не просто факт согласия с нормальным распределением с определёнными фиксированными значениями параметров, а несколько более общий факт принадлежности распределения к семейству нормальных распределений со всевозможными значениями параметров.
Проверку выборки на нормальность можно производить несколькими путями. Для начала можно вспомнить, какой вид у графика нормального распределения (гистограмма, график плотности и т.п.), как в нормальном распределении соотносятся среднее, мода, медиана, какими должны быть асимметрия и эксцесс, выполняется ли «правило 3-х сигм». Про всё это мы писали в статье про нормальное распределение. Вот с помощью такой описательной статистики можно оценить выборку на нормальность (обычно приемлемо отклонение на порядок ошибки рассчитываемого параметра). Вторая группа методов — критерии нормальности.
Критерии нормальности
Список критериев нормальности:
- Критерий Шапиро-Уилка
- Критерий асимметрии и эксцесса
- Критерий Дарбина
- Критерий Д’Агостино
- Критерий Васичека
- Критерий Дэвида-Хартли-Пирсона
- Критерий хи-квадрат
- Критерий Андерсона-Дарлинга
- Критерий Филлибена
- Критерий Колмогорова-Смирнова
- Критерий Мартинса-Иглевича
- Критерий Лина-Мудхолкара
- Критерий Шпигельхальтера
- Критерий Саркади
- Критерий Смирнова-Крамера-фон Мизеса
- Критерий Локка-Спурье
- Критерий Оя
- Критерий Хегази-Грина
- Критерий Муроты-Такеучи
Подробно эти критерии с формулами и таблицами можно посмотреть здесь.
Проверка на нормальность в R (источник)
Самый простой графический способ проверки характера распределения данных — построение гистограммы (с помощью функции hist() — это сделать несложно). Если гистограмма имеет колоколообразный симметричный вид, можно сделать заключение о том, что анализируемая переменная имеет примерно нормальное распределение. Однако при интерпретации гистограмм следует соблюдать осторожность, поскольку их внешний вид может сильно зависеть как от числа наблюдений, так и от шага, выбранного для разбиения данных на классы.

Другим очень часто используемым графическим способом проверки характера распределения данных является построение т.н. графиков квантилей (Q-Q plots, Quantile-Quantile plots). На таких графиках изображаются квантили двух распределений — эмпирического (т.е. построенного по анализируемым данным) и теоретически ожидаемого стандартного нормального распределения. При нормальном распределении проверяемой переменной точки на графике квантилей должны выстраиваться в прямую линию, исходящую под улом 45 градусов из левого нижнего угла графика. Графики квантилей особенно полезны при работе с небольшими по размеру совокупностями, для которых невозможно построить гистограммы, принимающие какую-либо выраженную форму.
В R для построения графиков квантилей можно использовать базовую функцию qqnorm(), которая в качестве основного аргумента принимает вектор со значениями анализируемой переменной.

Следует отметить, что интерпретация графиков квантилей при работе с небольшими выборками, происходящими из нормально распределенных генеральных совокупностей, требует определенного навыка. Дело в том, что при небольшом числе наблюдений точки на графике квантилей могут не всегда образовывать четко выраженную прямую линию. В качестве иллюстрации этого утверждения на следующем рисунке приведены графики квантилей для 5 случайным образом сгенерированных нормально распределенных выборок по 20 наблюдений каждая (если использованный в примере пакет DAAG у Вас не установлен, выполните команду install.packages(«DAAG»)):
library(DAAG)
qreference(m = 20, seed = 145, nrep = 5, nrows = 1)

Фигура, в которую выстраиваются точки на некоторых графиках далека от прямой линии. Причина данного эффекта — в небольшом объеме наблюдений.
Тесты проверки на нормальность в R
Существует целый ряд статистических тестов, специально разработанных для проверки нормальности распределения данных. В общем виде проверяемую при помощи этих тестов нулевую гипотезу можно сформулировать так: «Анализируемая выборка происходит из генеральной совокупности, имеющей нормальное распределение». Если получаемая при помощи того или иного теста вероятность ошибки Р оказывается меньше некоторого заранее принятого уровня значимости (например, 0.05), нулевая гипотеза отклоняется.
В R реализованы практически все имеющиеся тесты на нормальность — либо в виде стандарных функций, либо в виде функций, входящих в состав отдельных пакетов. Примером базовой функции является shapiro.test(), при помощи которой можно выполнить широко используемый тест Шапиро-Уилка:
shapiro.test(rnorm(500))
Shapiro-Wilk normality test
data: rnorm(500)
W = 0.9978, p-value = 0.7653 # P > 0.05 — нулевая гипотеза не отвергается
Основные классические критерии проверки на нормальность собраны в пакете nortest. Пакет можно установить с CRAN при помощи вызова функции install.packages():
Подключить установленный пакет можно при помощи функции library():
Может возникнуть вопрос: «А зачем столько много разных критериев для проверки одного факта? Нельзя ли выбрать наилучший и всегда его использовать?». Ответ на этот вопрос не утешителен: «В общем случае, к сожалению, нельзя».
Критерий Лиллифорса
Критерий Лиллифорса (Lilliefors) является вариантом известного классического критерия Колмогорова-Смирнова, специально модифицированного для проверки нормальности. Эта модификация существенна. Для проверки гипотезы нормальности нельзя использовать классический непараметрический критерий Колмогорова-Смирнова, реализованный в функции ks.test(). Критерий Лиллифорса реализован в функции lillie.test():
> lillie.test(rnorm(100, mean = 6, sd = 4));
Lilliefors (Kolmogorov-Smirnov) normality test
data: rnorm(100, mean = 6, sd = 4)
D = 0.0463, p-value = 0.8621
> lillie.test(runif(100, min = 2, max = 4));
Lilliefors (Kolmogorov-Smirnov) normality test
data: runif(100, min = 2, max = 4)
D = 0.0732, p-value = 0.2089
Критерии Крамера-фон Мизеса и Андерсона-Дарлинга
Эти критерии менее известны, но обычно работают гораздо лучше, нежели критерий Лиллифорса. Они реализованы в функциях cvm.test() и ad.test() соответственно:
> cvm.test(rnorm(50, mean = 6, sd = 4));
Cramer-von Mises normality test
data: rnorm(50, mean = 6, sd = 4)
W = 0.0321, p-value = 0.8123
> ad.test(runif(50, min = 2, max = 4));
Anderson-Darling normality test
data: runif(50, min = 2, max = 4)
A = 1.5753, p-value = 0.0004118
Критерий Шапиро-Франсиа
Этот критерий работает достаточно хорошо в большинстве не очень «сложных» случаев. Получить p-значение можно посредством функции sf.test():
> sf.test(rexp(50, rate = 2));
Shapiro-Francia normality test
data: rexp(50, rate = 2)
W = 0.7803, p-value = 2.033e-06
Критерий хи-квадрат Пирсона
В отличие от задач проверки пропорций, критерий хи-квадрат обычно очень плохо работает в задачах проверки распределения на нормальность. Вероятность ошибки второго рода очень велика для достаточно широкого класса альтернативных распределений. В связи с этим, использовать его не рекомендуется. Тем не менее реализация его предоставлена функцией pearson.test(). У этой функции есть булевская опция adjusted, которая позволяет внести поправки в p-значение из-за наличия двух неизвестных параметров. Рекомендуемая последовательность действий такая: получить два p-значения, одно, соответствующее adjusted=TRUE, второе — adjusted=FALSE. Истинное p-значение обычно находится между. Кроме того, полезно поварьировать объем выборки и посмотреть, насколько сильно меняется p-значение. Если влияние объёма выборки сильное, то от использования критерия стоит отказаться во избежание ошибок.
> pearson.test(rnorm(50, mean = 6, sd = 4));
Pearson chi-square normality test
data: rnorm(50, mean = 6, sd = 4)
P = 5.2, p-value = 0.6356
> pearson.test(runif(50, min = -1, max = 1));
Pearson chi-square normality test
data: runif(50, min = -1, max = 1)
P = 7.6, p-value = 0.3692
Нормальное распределение
Многочисленные методы, с помощью которых обрабатываются переменные, относящиеся к интервальной шкале, исходят из гипотезы, что их значения подчиняются нормальному распределению. При таком распределении большая часть значений группируется около некоторого среднего значения, по обе стороны от которого частота наблюдений равномерно снижается.
В качестве примера рассмотрим нормальное распределение возраста, которое строится по данным исследований гипертонии (файл hyper.sav) с помощью команд меню Graphs (Графы) ► Histogramm. (Гистограмма) (см. рис. 5.1).
Рис. 5.1: Распределение возраста
На диаграмме нанесена кривая нормального распределения (Колокол Гаусса). Реальное распределение в большей или меньшей степени отклоняется от этой идеальной кривой. Выборки, строго подчиняющиеся нормальному распределению, на практике, как правило, не встречаются. Поэтому почти всегда необходимо выяснить, можно ли реальное распределение считать нормальным и насколько значительно заданное распределение отличается от нормального.
Перед применением любого метода, который предполагает существование нормального распределения, наличие последнего нужно проверять в первую очередь. Классическим примером статистического теста, который исходит из гипотезы о нормальном распределении, можно назвать t-тест Стьюдента, с помощью которого сравнивают две независимые выборки. Если же данные не подчиняются нормальному распределению, следует использовать соответствующий непараметрический тест, в случае двух независимых выборок — U-тест Манна и Уитни.
Если визуальное сравнение реальной гистограммы с кривой нормального распределения кажется недостаточным, можно применить тест Колмогорова-Смирнова, который находится в меню Analyze (анализ данных) в наборе непараметрических тестов.
В нашем примере с распределением возрастов тест Колмогорова-Смирнова не показывает значительного отклонения от нормального распределения.
Еще одну возможность проверки наличия нормального распределения дает построение графика нормального распределения (см. разделы 10.4.1, 22.12), в котором наблюдаемые значения сопоставляются с ожидаемыми при нормальном распределении.
