R - QQPlot: як дізнатися, чи нормально поширюються дані


47

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

ОНОВЛЕННЯ

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

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

ОНОВЛЕННЯ

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

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


6
Знову редагуйте: результат тестування SW відкидає гіпотезу про те, що ці дані були незалежно виведені із звичайного нормального розподілу: значення р дуже мало. (Це видно як на графіку qq, на якому виявляється короткий лівий хвіст, так і в гістограмі, яка виявляє позитивну косостість.) Це дозволяє вам неправильно інтерпретувати тест. Коли ви правильно інтерпретуєте тест, у вас все ще виникає запитання?
whuber

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

1
Чому сюжети говорять про те, що його нормально не розподілено? Qqplot створює пряму лінію, і гістограма виглядає також нормально розподіленою? Я цього не розумію; (
Ле Макс

7
Діаграма qq очевидно не пряма, і гістограма явно не симетрична (що, мабуть, самий основний із багатьох критеріїв, яким повинна задовольняти звичайно розподілена гістограма). Відповідь Свена Гогенштейна пояснює, як читати сюжет qq.
whuber

1
Можливо, вам буде корисно генерувати нормальний вектор такого ж розміру та створити QQ-графік із нормальними даними, щоб побачити, як це може виглядати, коли дані, власне, надходять із звичайного розподілу.
СтатистикаСтудент

Відповіді:


31

" Тест показав, що цілком ймовірно, що населення нормально розподілене ".

Немає; це не показало.

Тести гіпотези не говорять про те, наскільки ймовірним є нуль. Насправді ви можете зробити ставку, що ця нуль помилкова.

Діаграма QQ не дає чітких ознак нестандартності (сюжет досить прямий); можливо, є трохи коротший лівий хвіст, ніж ви очікували, але це насправді не має великого значення.

Гістограма як - це, мабуть, теж не говорить багато; це також натякає на трохи коротший лівий хвіст. Але дивіться тут

Поширення населення вашими даними не буде абсолютно нормальним. Однак графік QQ показує, що нормальність, ймовірно, є досить хорошим наближенням.

Якби розмір вибірки був не надто малим, брак відхилення Шапіро-Вілка, мабуть, сказав би майже те саме.

Оновлення: ваше редагування для включення фактичного p-значення Shapiro-Wilk є важливим, оскільки насправді це вказувало б, що ви відхилили нуль на типово значущих рівнях. Цей тест вказує на те, що ваші дані зазвичай не поширюються, і легке перекос, позначене ділянками, ймовірно, підбирається тестом. Для типових процедур, які можуть припускати нормальність самої змінної (однотипний t-тест - це той, що спадає на думку), при тому, що представляється досить великим розміром вибірки, ця легка ненормальність майже не матиме наслідків при все - одна з проблем із хорошими тестами на придатність полягає в тому, що вони, швидше за все, відхиляються саме тоді, коли це не має значення (коли розмір вибірки досить великий, щоб виявити деяку скромну ненормальність); аналогічно, вони, швидше за все, не зможуть відхилити, коли це має найбільше значення (коли розмір вибірки невеликий).


Насправді це змусило мене неправильно прочитати заяву ОП: я вважав, що він сказав малоймовірним. Зверніть увагу , що я трохи НЕ згоден з вами: в той час як тест зазвичай кажу вам , як навряд чи спостереження було б , якщо нульова гіпотеза вірна, ми використовуємо це , щоб стверджувати , що , так як ми зробили отримати це спостереження, нульова гіпотеза навряд чи буде правдою.
Нік Саббе

Thx для вашої відповіді! Мене трохи бентежать усі твердження, які йдуть в інший бік. Щоб сказати це чітко, моя вправа полягає в тому, щоб зробити заяву про нормальність вибірки. То що б ви запропонували сказати як відповідь моєму професору? І як показати нормальність, навіть розмір вибірки величезний?; S
Le Max

2
Про найсильніший, про який можна сказати, було б щось на кшталт - "Діаграма QQ цілком відповідає нормальності, але лівий хвіст трохи" короткий "; є незначні ознаки косості".
Glen_b

37

Якщо дані звичайно розподіляються, точки в нормальній 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" у бібліотеці "автомобілів". Це було деякий час, і я не встиг. Це додає довірчі інтервали. Ви також можете вказати базовий розподіл для деяких не нормальних розподілів. Це в моїй відповіді нижче.
EngrStudent

1
Я думаю, що для початківців також, мабуть, краще вказати, що точки дійсно повинні лежати на прямій лінії, щоб припущення про нормальність дійсно перевірили. approximately
СтатистикаСтудент

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' бібліотеки ', оскільки вона забезпечує не тільки центральну тенденцію, але і довірчі інтервали. Це дає наочні вказівки, щоб допомогти підтвердити, чи відповідає поведінка даних гіпотетичному розподілу.

library(car)

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

деякі посилання:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.