R - QQPlot: как посмотреть, нормально ли распределяются данные


48

Я построил это после теста на нормальность Шапиро-Вилка. Тест показал, что вполне вероятно, что население нормально распределено. Однако как увидеть это «поведение» на этом сюжете?введите описание изображения здесь

ОБНОВИТЬ

Простая гистограмма данных:

введите описание изображения здесь

ОБНОВИТЬ

Тест Шапиро-Вилка говорит:

введите описание изображения здесь


6
Отредактируйте: результат теста SW отвергает гипотезу, что эти данные были независимо взяты из общего нормального распределения: значение p очень мало. (Это видно как на графике qq, который показывает короткий левый хвост, так и на гистограмме, которая показывает положительную асимметрию.) Это говорит о том, что вы неверно истолковали тест. Когда вы правильно интерпретируете тест, у вас все еще есть вопрос?
whuber

4
Напротив: программное обеспечение и все сюжеты соответствуют тому, что они говорят. График qq и гистограмма показывают конкретные отклонения данных от нормальных; SW-тест говорит, что такие данные вряд ли получены в результате нормального распределения.
whuber

2
Почему сюжеты говорят, что они не распределены нормально? Qqplot создает прямую линию, и гистограмма выглядит также нормально распределенной? Я не понимаю; (
Le Max

7
График qq явно не прямой, а гистограмма явно не симметричная (что, возможно, является самым основным из многих критериев, которым должна удовлетворять нормально распределенная гистограмма). Ответ Свена Хоэнштейна объясняет, как читать сюжет qq.
whuber

1
Возможно, вам будет полезно сгенерировать нормальный вектор того же размера и создать QQ-график с нормальными данными, чтобы увидеть, как он может выглядеть, когда данные на самом деле поступают из нормального распределения.
StatsStudent

Ответы:


31

« Тест показал, что вполне вероятно, что население нормально распределено ».

Нет; это не показывало это.

Тесты гипотез не говорят вам, насколько вероятен ноль. На самом деле вы можете поспорить, что это ноль ложно.

График QQ не дает четкого указания на ненормальность (график довольно прямой); возможно, левый хвост немного короче, чем вы ожидаете, но это не имеет большого значения.

Гистограмма как есть, вероятно, тоже ничего не говорит; это также намекает на немного более короткий левый хвост. Но смотрите здесь

Распределение населения по вашим данным не будет нормальным. Тем не менее, график QQ показывает, что нормальность, вероятно, является достаточно хорошим приближением.

Если бы размер выборки был не слишком мал, отсутствие отбраковки Шапиро-Вилка, вероятно, сказало бы то же самое.

Обновление: ваша правка, включающая фактическое значение p Шапиро-Уилка, важна, потому что на самом деле это будет означать, что вы отклоните ноль на типичных значимых уровнях. Этот тест указывает на то, что ваши данные обычно не распределяются, и умеренная асимметрия, указанная на графиках, является, вероятно, тем, что выявляется тестом. Для типичных процедур, которые могут предполагать нормальность самой переменной (t-критерий с одной выборкой - тот, который приходит на ум), при том, что представляется довольно большим размером выборки, эта небольшая ненормальность почти не будет иметь значения при все - одна из проблем, связанных с проверкой соответствия, состоит в том, что они с большей вероятностью отклонят только тогда, когда это не имеет значения (когда размер выборки достаточно велик, чтобы обнаружить некоторую скромную ненормальность); Точно так же они, скорее всего, не смогут отказаться, когда это имеет наибольшее значение (когда размер выборки невелик).


Фактически, это заставило меня неверно истолковать заявление ОП: я думал, что он сказал маловероятно. Обратите внимание , что я немного не согласен с вами: в то время как тест обычно говорю вам , как вряд ли наблюдение было бы , если нулевая гипотеза верна, мы используем это , чтобы утверждать , что , так как мы сделали получить это наблюдение, нулевая гипотеза вряд ли будет правдой.
Ник Сабб,

Спасибо за ваш ответ! Меня немного смущают все утверждения, которые идут в другом направлении. Чтобы сказать это ясно, мое упражнение состоит в том, чтобы сделать заявление о нормальности образца. Так что бы вы предложили сказать в ответ моему профессору? И как показать нормальность даже огромного размера выборки?; S
Le Max

2
О сильнейшем, который вы могли бы сказать, было бы что-то вроде: «Сюжет QQ достаточно согласуется с нормой, но левый хвост немного« короткий »; есть слабые признаки асимметрии».
Glen_b

38

Если данные распределены нормально, точки на графике QQ-норма лежат на прямой диагональной линии. Вы можете добавить эту строку в свой график QQ с помощью команды qqline(x), где x- вектор значений.

Примеры нормального и ненормального распределения:

Нормальное распределение

set.seed(42)
x <- rnorm(100)

QQ-нормальный график с линией:

qqnorm(x); qqline(x)

введите описание изображения здесь

Отклонения от прямой минимальны. Это указывает на нормальное распределение.

Гистограмма:

hist(x)

введите описание изображения здесь

Ненормальное (гамма) распределение

y <- rgamma(100, 1)

QQ-нормальный сюжет:

qqnorm(y); qqline(y)

введите описание изображения здесь

Точки четко следуют другой форме, чем прямая линия.

Гистограмма подтверждает ненормальность. Распределение имеет не колоколообразный, а положительно перекос (т. Е. Большинство точек данных находится в нижней половине). Гистограммы нормальных распределений показывают самую высокую частоту в центре распределения.

hist(y)

введите описание изображения здесь


Я считаю, что использование доверительных интервалов на qqplot полезно. Ничто не является «совершенно» нормальным, и размер выборки может определить, насколько далеко что-то может быть неточным и все же в пределах нормы.
EngrStudent - Восстановить Монику

@EngrStudent У вас есть код, которым можно поделиться, чтобы включить доверительный интервал в qqplot?
знаю

1
@danno Проверьте qqPlotфункцию в carпакете.
Свен Хоэнштайн

@danno - посмотрите на «qqPlot» в библиотеке «car». Это было вокруг некоторое время, и я не сделал это. Это добавляет доверительные интервалы. Вы также можете указать базовое распределение для некоторых ненормальных распределений. Это в моем ответе ниже.
EngrStudent - Восстановить Монику

1
Я думаю, что для новичка, вероятно, также лучше указать, что точки должны лежать на прямой линии, чтобы предположение о нормальности действительно подтвердилось. approximately
StatsStudent

23

Некоторые инструменты для проверки правильности предположения о нормальности в R

library(moments)
library(nortest)
library(e1071)

set.seed(777)
x <- rnorm(250,10,1)

# skewness and kurtosis, they should be around (0,3)
skewness(x)
kurtosis(x)

# Shapiro-Wilks test
shapiro.test(x)

# Kolmogorov-Smirnov test
ks.test(x,"pnorm",mean(x),sqrt(var(x)))

# Anderson-Darling test
ad.test(x)

# qq-plot: you should observe a good fit of the straight line
qqnorm(x)
qqline(x)

# p-plot: you should observe a good fit of the straight line
probplot(x, qdist=qnorm)

# fitted normal density
f.den <- function(t) dnorm(t,mean(x),sqrt(var(x)))
curve(f.den,xlim=c(6,14))
hist(x,prob=T,add=T)

11

Хотя рекомендуется визуально проверить, соответствует ли ваша интуиция результатам какого-либо теста, нельзя ожидать, что это будет легко каждый раз. Если люди, пытающиеся обнаружить бозон Хиггса, будут доверять своим результатам только в том случае, если смогут визуально оценить их, им понадобится очень острый взгляд.

Особенно с большими наборами данных (и, таким образом, как правило, с увеличением мощности), статистика, как правило, улавливает наименьшие различия, даже когда они едва различимы невооруженным глазом.

При этом для нормальности ваш QQ-график должен показывать прямую линию: я бы сказал, что нет. Есть четкие изгибы в хвостах, и даже около середины есть некоторое волнение. Визуально, я все еще могу сказать (в зависимости от цели проверки нормальности), что эти данные «достаточно» нормальны.

Однако обратите внимание: для большинства целей, где вы хотите проверить нормальность, вам нужна только нормальность средних значений, а не нормальность наблюдений, поэтому для спасения вас может быть достаточно центральной предельной теоремы. Кроме того: в то время как нормальность часто является предположением о том, что вам необходимо проверять «официально», многие тесты оказались довольно нечувствительными к невыполнению этого предположения.


2

Мне нравится версия из 'R' библиотеки 'car', потому что она обеспечивает не только центральную тенденцию, но и доверительные интервалы. Это дает визуальное руководство, чтобы помочь подтвердить, соответствует ли поведение данных гипотетическому распределению.

library(car)

qqPlot(lm(prestige ~ income + education + type, data=Duncan), 
       envelope=.99)

некоторые ссылки:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.