Interpretacja QQplot - Czy istnieje jakaś reguła, która decyduje o braku normalności?


47

Przeczytałem tutaj wystarczająco dużo wątków na temat QQplots, aby zrozumieć, że QQplot może być bardziej pouczający niż inne testy normalności. Jednak nie mam doświadczenia w interpretacji QQplots. Dużo googlowałem; Znalazłem wiele wykresów nietypowych wykresów QQ, ale nie ma jasnych zasad ich interpretacji, poza tym, co wydaje się być porównaniem ze znanymi rozkładami plus „przeczucie”.

Chciałbym wiedzieć, czy masz (lub znasz) jakąś praktyczną zasadę, która pomoże ci zdecydować o nienormalności.

To pytanie pojawiło się, gdy zobaczyłem te dwa wykresy: wykres 2 wykres 1

Rozumiem, że decyzja o nienormalności zależy od danych i tego, co chcę z nimi zrobić; jednak moje pytanie brzmi: ogólnie, kiedy zaobserwowane odstępstwa od linii prostej stanowią wystarczający dowód, aby nierozsądne było zbliżenie normalności?

Co jest warte, test Shapiro-Wilka nie odrzucił hipotezy o nienormalności w obu przypadkach.


3
przedziały ufności wokół linii QQ są całkiem fajne. Czy możesz udostępnić kod R użyty do ich uzyskania?
user603

7
To tylko qqPlot () z {qualityTools} :)
greymatter0

Odpowiedzi:


43

Zauważ, że Shapiro-Wilk to potężny test normalności.

Najlepszym podejściem jest naprawdę dobre wyobrażenie o tym, jak wrażliwa jest jakakolwiek procedura, której chcesz użyć, na różnego rodzaju nienormalności (jak bardzo nietypowa musi być w ten sposób, aby wpływała na twoje wnioskowanie bardziej niż ty Mogę zaakceptować).

Nieformalnym podejściem do patrzenia na wykresy byłoby wygenerowanie szeregu zestawów danych, które w rzeczywistości są normalne, o tej samej wielkości próbki, co masz - (na przykład powiedzmy 24 z nich). Wykreśl swoje rzeczywiste dane w siatce takich wykresów (5x5 w przypadku 24 losowych zestawów). Jeśli nie jest to szczególnie nietypowy wygląd (powiedzmy najgorzej wyglądający), jest dość zgodny z normalnością.

wprowadź opis zdjęcia tutaj

Moim zdaniem zestaw danych „Z” w środku wygląda mniej więcej na równi z „o” i „v”, a może nawet „h”, podczas gdy „d” i „f” wyglądają nieco gorzej. „Z” to prawdziwe dane. Chociaż przez chwilę nie wierzę, że jest to normalne, nie jest to szczególnie niezwykłe, gdy porównasz to z normalnymi danymi.

[Edycja: Właśnie przeprowadziłem losową ankietę - cóż, zapytałem córkę, ale w dość losowym czasie - a jej wybór na najmniej jak linię prostą był „d”. 100% ankietowanych uważało, że „d” jest najbardziej dziwne.]

Bardziej formalnym podejściem byłoby wykonanie testu Shapiro-Francii (który jest efektywnie oparty na korelacji w wykresie QQ), ale (a) nie jest nawet tak potężny jak test Shapiro Wilka i (b) testy formalne odpowiadają pytanie (czasem), na które powinieneś już znać odpowiedź (rozkład, z którego pochodzą Twoje dane, nie jest dokładnie normalne), zamiast pytania, na które musisz odpowiedzieć (jak bardzo to ma znaczenie?).


Zgodnie z życzeniem, kod powyższego wyświetlacza. Nie ma w tym nic wymyślnego:

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)

Zauważ, że było to wyłącznie w celach ilustracyjnych; Chciałem mieć mały zestaw danych, który wyglądałby nieco nienormalnie, dlatego wykorzystałem resztki z regresji liniowej na danych samochodów (model nie jest całkiem odpowiedni). Jednakże, jeśli faktycznie generowałem taki wyświetlacz dla zestawu reszt dla regresji, zrestartowałbym wszystkie 25 zestawów danych na tych samych jak w modelu i wyświetliłem wykresy QQ ich reszt, ponieważ reszty mają pewne struktura nie występuje w normalnych liczbach losowych.x

(Robię takie zestawy wykresów przynajmniej od połowy lat 80. Jak możesz interpretować wykresy, jeśli nie wiesz, jak się zachowują, gdy założenia się utrzymują - a kiedy nie?)

Zobacz więcej:

Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF and Wickham, H. (2009) Wnioskowanie statystyczne dla eksploracyjnej analizy danych i diagnostyki modeli Phil. Trans. R. Soc. A 2009 367, 4361–4383 doi: 10.1098 / rsta.2009.0120


8
+1. Naprawdę podoba mi się pomysł, aby porównać wykresy QQ twojej próbki z kilkoma losowo wygenerowanymi!
COOLSerdash,

Dziękuję @Glen_b. Czy mogę zapytać, w jaki sposób stworzyłeś siatkę grafów?
greymatter0

3
Właśnie odkryłem, że nigdy nie odpowiedziałem na twoją prośbę, greymatter0. Tak naprawdę nie ma miejsca, by umieścić cały mój scenariusz, ale przedstawię jego sedno. Grałem z opcjami fabuły - 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))potem w pętli izrobiłem qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main=""); qqline(xz[,i],col=2,lty=2); box("figure", col="darkgreen")to na końcu, par(opar)aby przywrócić opcje do tego, czym były wcześniej. To pomija niektóre szczegóły, ale powinieneś być w stanie zarządzać stamtąd.
Glen_b

@ greymatter0 ... i teraz odkrywam, że nie odpowiednio pingowałem cię, kiedy w końcu odpowiedziałem. Przepraszam.
Glen_b

Nie martw się Glen_b, dziękuję bardzo za zapamiętanie!
greymatter0

22

Nie zaprzeczając żadnej z doskonałych odpowiedzi tutaj, mam jedną ogólną zasadę, która często (choć nie zawsze) jest decydująca. (Wydaje się, że trafny komentarz w odpowiedzi @Dante też jest odpowiedni).

Czasami wydaje się to zbyt oczywiste, ale proszę bardzo.

Z przyjemnością nazywam dystrybucję niestandardową, jeśli uważam, że mogę zaoferować inny opis, który jest zdecydowanie bardziej odpowiedni.

Tak więc, jeśli istnieje niewielka krzywizna i / lub nieregularność w ogonach normalnego wykresu kwantylowo-kwantylowego, ale przybliżona prostoliniowość na wykresie kwantowo-kwantowym gamma, mogę powiedzieć: „To nie jest dobrze scharakteryzowane jako normalne; bardziej przypomina gamma „.

To nie przypadek, że odzwierciedla to standardowy argument w historii i filozofii nauki, nie wspominając o ogólnej praktyce naukowej, że hipoteza jest najbardziej wyraźnie i skutecznie obalona, ​​jeśli masz lepszą. (Wskazówka: aluzje do Karla Poppera, Thomasa S. Kuhna itd.)

Prawdą jest, że dla początkujących, a nawet dla wszystkich, istnieje płynna gradacja między „To normalne, z wyjątkiem drobnych nieprawidłowości, których zawsze oczekujemy”, a „To bardzo różni się od normalnych, z wyjątkiem pewnego szorstkiego podobieństwa, które często uzyskujemy „.

Koperty ufności (podobne) i wiele symulowanych próbek mogą pomóc, a ja używam i polecam oba, ale to też może być pomocne. (Nawiasem mówiąc, porównanie z portfelem symulacji jest powtórnym niedawnym ponownym wynalazkiem, ale sięga co najmniej aż do Shewharta w 1931 r.)

Powtórzę echo mojej górnej linii. Czasami wydaje się, że żadna dystrybucja markowych produktów w ogóle nie pasuje i musisz iść naprzód, najlepiej jak potrafisz.


12

Jak powiedział @Glen_b, możesz porównać swoje dane z danymi, które na pewno są normalne - dane, które sam wygenerowałeś, a następnie polegaj na swoich przeczuciach :)

Poniżej znajduje się przykład z podręcznika OpenIntro Statistics

Rzućmy okiem na ten wykres QQ:

qq1

Jest to normalne? Porównajmy to z normalnie dystrybuowanymi danymi:

qq2

Ten wygląda lepiej niż nasze dane, więc nasze dane nie wydają się normalne. Upewnijmy się, symulując go kilka razy i kreśląc obok siebie

qq3

Nasze przeczucie mówi nam, że próbka prawdopodobnie nie zostanie rozprowadzona normalnie.

Oto kod R, aby to zrobić

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

Istnieje wiele testów normalności. Zazwyczaj skupia się na hipotezie zerowej , a mianowicie „ ”. Jednak niewiele uwagi poświęca się hipotezie alternatywnej : „przeciw czemu”?H0:F=Normal

Zazwyczaj testy uwzględniające każdy inny rozkład jako hipotezę alternatywną mają niską moc w porównaniu z testami z właściwą hipotezą alternatywną (patrz na przykład 1 i 2 ).

Istnieje interesujący pakiet R z wdrożeniem kilku testów normalności nieparametrycznej („na północ” http://cran.r-project.org/web/packages/nortest/index.html). Jak wspomniano w powyższych artykułach, test współczynnika prawdopodobieństwa, z odpowiednią alternatywną hipotezą, jest silniejszy niż te testy.

Pomysł wspomniany przez @Glen_b na temat porównywania twojej próbki z przypadkowymi próbkami z twojego (dopasowanego) modelu jest wspomniany w mojej drugiej referencji. Nazywa się je „QQ-Envelopes” lub „QQ-Fans”. Wymaga to domyślnie posiadania modelu do generowania danych i, w konsekwencji, alternatywnej hipotezy.


4

Podczas nauczania mojego kursu strategii modelowania regresji ten temat zawsze niepokoi moich uczniów i mnie. Mówię im, że nasze oceny graficzne są zawsze subiektywne i mam tendencję do martwienia się o wykresy wcześniej niż później, kiedy jestem zmęczony. Dodanie formalnych testów statystycznych nie pomaga: testy mogą wykryć trywialną nienormalność dla bardzo dużych próbek i pominąć ważną nienormalność dla małych . Wolę za pomocą metod, które nie ponoszą normalności, które są skuteczne, np porządkowej regresji ciągłego .YnY


1
+1. Jeśli masz pięć minut @Franck, możesz rzucić okiem na ten wątek: stats.meta.stackexchange.com/questions/4743 i tam zważyć? Chodzi o nasze tagi dla porządkowego / uporządkowanego logit / probit - istnieje cała wiązka lub powiązane tagi, a także pewna niespójność w sposobie używania tagu [porządkowego], więc sugeruję uporządkowanie tych tagów. Byłoby wspaniale poznać Twoją opinię na temat najlepszego sposobu ich organizacji.
ameba mówi Przywróć Monikę

1
Start z postu o kwadratowej funkcji orm z przykładu dla ciągłego . Obecnie nie można go znaleźć ...Y
Frank Harrell,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.