Интерпретация QQplot - есть ли эмпирическое правило, чтобы принять решение о ненормальности?

47

Я прочитал достаточно потоков на QQplots здесь, чтобы понять, что QQplot может быть более информативным, чем другие тесты нормальности. Тем не менее, я неопытен в интерпретации QQplots. Я много гуглил; Я нашел много графиков ненормальных QQplots, но нет четких правил, как их интерпретировать, кроме того, что кажется сравнением с известными распределениями плюс «интуиция».

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

Этот вопрос возник, когда я увидел эти два графика: график 2 график 1

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

Что бы ни стоило, тест Шапиро-Уилка не смог отвергнуть гипотезу ненормальности в обоих случаях.

greymatter0
источник
3
полосы доверия вокруг линии QQ довольно крутые. Можете ли вы поделиться кодом R, который вы использовали для их получения?
user603
7
Это просто qqPlot () из {qualityTools} :)
greymatter0

Ответы:

43

Обратите внимание, что Шапиро-Уилк является мощным тестом нормальности.

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

Неформальный подход к просмотру графиков состоял бы в том, чтобы сгенерировать несколько наборов данных, которые на самом деле являются нормальными, того же размера выборки, что и у вас - (например, скажем, 24 из них). Разместите ваши реальные данные среди сетки таких графиков (5x5 в случае 24 случайных наборов). Если это не особенно необычный вид (скажем, худший), то он вполне соответствует нормам.

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

На мой взгляд, набор данных «Z» в центре выглядит примерно наравне с «o» и «v» и, возможно, даже «h», тогда как «d» и «f» выглядят несколько хуже. «Z» - это реальные данные. Хотя я на мгновение не верю, что это на самом деле нормально, это не особенно необычно, когда вы сравниваете это с обычными данными.

[Редактировать: я только что провел случайный опрос - ну, я спросил свою дочь, но в довольно случайное время - и ее выбор для наименее, как прямая линия была "d". Так что 100% опрошенных думали, что «д» был самым странным.]

Более формальным подходом было бы сделать тест Шапиро-Франсии (который эффективно основан на корреляции в графике QQ), но (а) он даже не такой мощный, как тест Шапиро-Вилка, и (б) формальное тестирование отвечает вопрос (иногда), что вы уже должны знать ответ на какой-либо вопрос (распределение, из которого были получены ваши данные, не совсем нормальный), вместо того, чтобы ответить на вопрос, на который вам нужно ответить (насколько это важно?).


По запросу, код для вышеуказанного дисплея. Ничего сложного:

z = lm(dist~speed,cars)$residual
n = length(z)
xz = cbind(matrix(rnorm(12*n),nr=n),z,matrix(rnorm(12*n),nr=n))
colnames(xz) = c(letters[1:12],"Z",letters[13:24])

opar = par()
par(mfrow=c(5,5));
par(mar=c(0.5,0.5,0.5,0.5))
par(oma=c(1,1,1,1));

ytpos = (apply(xz,2,min)+3*apply(xz,2,max))/4
cn = colnames(xz)

for(i in 1:25) {
  qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main="")
  qqline(xz[,i],col=2,lty=2)
  box("figure", col="darkgreen")
  text(-1.5,ytpos[i],cn[i])
}

par(opar)

x

(По крайней мере, с середины 80-х годов я делал наборы подобных графиков. Как вы можете интерпретировать графики, если вы не знакомы с тем, как они ведут себя, когда предположения верны - а когда нет?)

Узнать больше:

Буя, А., Кук, Д. Хофманн, Х., Лоуренс, М. Ли, Э.-К., Суэйн, Д.Ф. и Уикхем, Х. (2009) Статистический вывод для анализа поисковых данных и диагностики моделей Фил. Сделка R. Soc. A 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120

Glen_b
источник
8
+1. Мне очень нравится идея сравнить QQ-графики вашего образца с некоторыми случайно сгенерированными!
COOLSerdash
Спасибо @Glen_b. Могу ли я спросить вас, как вы создали сетку графиков?
greymatter0
3
Я только что обнаружил, что никогда не отвечал на ваш запрос, greymatter0. В действительности нет места, чтобы поместить весь мой сценарий, но я обрисую его суть. Я играл с вариантами сюжета - opar=par(); par(mfrow=c(5,5)); par(mar=c(0.5,0.5,0.5,0.5)); par(oma=c(1,1,1,1))затем в цикле iя сделал qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main=""); qqline(xz[,i],col=2,lty=2); box("figure", col="darkgreen")потом, в конце, par(opar)чтобы установить параметры обратно к тому, что они были раньше. Это оставляет некоторые детали, но вы должны быть в состоянии управлять оттуда.
Glen_b
@ greymatter0 ... и теперь я обнаружил, что раньше я не пинговал тебя должным образом, когда наконец-то ответил. Мои извенения.
Glen_b
Не волнуйся, Glen_b, спасибо тебе большое, что вспомнили!
greymatter0
22

Не противореча ни одному из превосходных ответов здесь, у меня есть одно эмпирическое правило, которое часто (но не всегда) является решающим. (Проходящий комментарий в ответе @Dante тоже кажется уместным.)

Иногда кажется слишком очевидным, чтобы заявить, но вот вы здесь.

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

Таким образом, если в хвостах нормального квантиль-квантильного графика есть небольшая кривизна и / или неровность, но приблизительная прямолинейность на гамма-квантиль-квантильном графике, я могу сказать: «Это не очень хорошо охарактеризовано как нормальное; это больше похоже на гамму ».

Не случайно это перекликается со стандартным аргументом в истории и философии науки, не говоря уже об общей научной практике, о том, что гипотеза наиболее четко и эффективно опровергается, когда у вас есть лучшая, чтобы поставить ее на место. (Подсказка: намеки на Карла Поппера, Томаса С. Куна и т. Д.)

Это правда, что для новичков, да и для всех, существует плавная градация между «Это нормально, за исключением незначительных неровностей, которые мы всегда ожидаем» и «Это очень отличается от нормы, за исключением некоторого грубого сходства, которое мы часто получаем ».

Конверты с доверием (подобные) и несколько смоделированных образцов могут сильно помочь, и я использую и рекомендую оба, но это также может помочь (Между прочим, сравнение с портфелем симуляций является повторным недавним переосмыслением, но восходит, по крайней мере, к Шухарту в 1931 году.)

Я повторю мою верхнюю строчку. Иногда кажется, что ни одна торговая марка не подходит, и вам нужно двигаться вперед как можно лучше.

Ник Кокс
источник
12

Как сказал @Glen_b, вы можете сравнить свои данные с данными, которые, как вы уверены, нормальные - данные, которые вы сгенерировали сами, а затем положиться на свои интуитивные ощущения :)

Ниже приведен пример из OpenIntro статистического учебника

Давайте посмотрим на этот график QQ:

QQ1

Это нормально? Давайте сравним это с нормально распределенными данными:

QQ2

Этот выглядит лучше, чем наши данные, поэтому наши данные не кажутся нормальными. Давайте удостоверимся, симулируя это несколько раз и рисуя рядом

QQ3

Таким образом, наше внутреннее чувство говорит нам, что образец вряд ли будет распределен нормально.

Вот код R, чтобы сделать это

load(url("http://www.openintro.org/stat/data/bdims.RData"))
fdims = subset(bdims, bdims$sex == 0)

qqnorm(fdims$wgt, col=adjustcolor("orange", 0.4), pch=19)
qqline(fdims$wgt)

qqnormsim = function(dat, dim=c(2,2)) {
  par(mfrow=dim)
  qqnorm(dat, col=adjustcolor("orange", 0.4), 
         pch=19, cex=0.7, main="Normal QQ Plot (Data)")
  qqline(dat)
  for (i in 1:(prod(dim) - 1)) {
    simnorm = rnorm(n=length(dat), mean=mean(dat), sd=sd(dat))
    qqnorm(simnorm, col=adjustcolor("orange", 0.4), 
           pch=19, cex=0.7,
           main="Normal QQ Plot (Sim)")
    qqline(simnorm)
  }
  par(mfrow=c(1, 1))
}
qqnormsim(fdims$wgt)
Алексей Григорьев
источник
9

H0:F=Normal

Как правило, тесты, которые рассматривают любое другое распределение в качестве альтернативной гипотезы, имеют низкую мощность по сравнению с тестами с правильной альтернативной гипотезой (см., Например, 1 и 2 ).

Существует интересный R-пакет с реализацией нескольких непараметрических тестов нормальности ('nortest', http://cran.r-project.org/web/packages/nortest/index.html). Как упоминалось в вышеприведенных работах, критерий отношения правдоподобия с соответствующей альтернативной гипотезой является более мощным, чем эти тесты.

Идея, упомянутая @Glen_b о сравнении вашей выборки со случайными выборками из вашей (подобранной) модели, упоминается во втором моем справочнике. Они называются «QQ-Envelopes» или «QQ-Fans». Это косвенно требует наличия модели для генерации данных из и, следовательно, альтернативной гипотезы.

Dante
источник
4

nY

Фрэнк Харрелл
источник
1
+1. Если у вас есть пять минут @Franck, не могли бы вы взглянуть на эту ветку : stats.meta.stackexchange.com/questions/4743 и взвесить? Речь идет о наших тегах для порядкового / упорядоченного логита / пробита - здесь есть целая куча или связанные теги и некоторая несогласованность в использовании тега [ordinal], поэтому я предлагаю привести в порядок эти теги. Было бы здорово узнать ваше мнение о наилучшем способе их организации.
говорит амеба: восстанови Монику
1
Y