R - QQPlot: Wie wird festgestellt, ob Daten normal verteilt sind?


47

Ich habe dies aufgezeichnet, nachdem ich einen Shapiro-Wilk-Normalitätstest durchgeführt habe. Der Test hat gezeigt, dass es wahrscheinlich ist, dass die Bevölkerung normal verteilt ist. Wie kann man dieses "Verhalten" auf dieser Handlung sehen?Bildbeschreibung hier eingeben

AKTUALISIEREN

Ein einfaches Histogramm der Daten:

Bildbeschreibung hier eingeben

AKTUALISIEREN

Der Shapiro-Wilk-Test sagt:

Bildbeschreibung hier eingeben


6
Zum Editieren: Das SW-Testergebnis weist die Hypothese zurück, dass diese Daten unabhängig von einer gemeinsamen Normalverteilung gezogen wurden: Der p-Wert ist sehr klein. (Dies ist sowohl im qq-Diagramm zu sehen, das einen kurzen linken Schwanz aufweist, als auch im Histogramm, das eine positive Schiefe aufweist.) Dies deutet darauf hin, dass Sie den Test falsch interpretiert haben. Wenn Sie den Test richtig interpretieren, haben Sie noch eine Frage zu stellen?
Whuber

4
Im Gegenteil: Die Software und alle Darstellungen stimmen überein, was sie sagen. Das qq-Diagramm und das Histogramm zeigen spezifische Arten, in denen die Daten von der Normalität abweichen. Der SW-Test besagt, dass solche Daten wahrscheinlich nicht aus einer normalen Verteilung stammen.
whuber

1
Warum heißt es in den Handlungen, dass es nicht normal verteilt ist? Das qqplot erzeugt eine gerade Linie und das Histogramm sieht auch normal verteilt aus. Ich verstehe es nicht; (
Le Max

7
Das qq-Diagramm ist eindeutig nicht gerade und das Histogramm ist eindeutig nicht symmetrisch (was vielleicht das grundlegendste der vielen Kriterien ist, die ein normalverteiltes Histogramm erfüllen muss). Sven Hohensteins Antwort erklärt, wie man die qq-Handlung liest.
Whuber

1
Es kann hilfreich sein, einen Normalvektor derselben Größe zu generieren und ein QQ-Diagramm mit den normalen Daten zu erstellen, um zu sehen, wie die Daten aussehen, wenn sie tatsächlich aus einer Normalverteilung stammen.
StatsStudent

Antworten:


31

" Der Test hat gezeigt, dass es wahrscheinlich ist, dass die Bevölkerung normal verteilt ist. "

Nein; das hat es nicht gezeigt.

Hypothesentests sagen Ihnen nicht, wie wahrscheinlich die Null ist. Tatsächlich können Sie wetten, dass diese Null falsch ist.

Der QQ-Plot gibt keinen starken Hinweis auf Nicht-Normalität (der Plot ist ziemlich gerade); Es gibt vielleicht einen etwas kürzeren linken Schwanz, als man erwarten würde, aber das ist wirklich unwichtig.

Das Histogramm sagt wahrscheinlich auch nicht viel aus; es deutet auch auf einen etwas kürzeren linken Schwanz hin. Aber siehe hier

Die Bevölkerungsverteilung, aus der Ihre Daten stammen, wird nicht ganz normal sein. Das QQ-Diagramm zeigt jedoch, dass die Normalität wahrscheinlich eine einigermaßen gute Annäherung ist.

Wenn die Stichprobengröße nicht zu klein wäre, würde eine fehlende Ablehnung des Shapiro-Wilk wahrscheinlich fast dasselbe aussagen.

Update: Ihre Änderung, um den tatsächlichen Shapiro-Wilk-p-Wert einzuschließen, ist wichtig, da dies darauf hinweist, dass Sie die Null bei typischen signifikanten Werten ablehnen würden. Dieser Test zeigt an, dass Ihre Daten nicht normal verteilt sind, und die in den Diagrammen angegebene leichte Schiefe ist wahrscheinlich das, was vom Test erfasst wird. Bei typischen Verfahren, bei denen die Normalität der Variablen selbst angenommen wird (der T-Test mit einer Stichprobe ist einer, der in den Sinn kommt), hat diese leichte Nicht-Normalität bei einer scheinbar relativ großen Stichprobe fast keine Konsequenz Alles - eines der Probleme bei der Prüfung der Anpassungsgüte ist, dass sie eher abgelehnt werden, wenn es keine Rolle spielt (wenn die Stichprobengröße groß genug ist, um eine bescheidene Nicht-Normalität zu erkennen). In ähnlicher Weise werden sie eher nicht zurückweisen, wenn es darauf ankommt (wenn die Stichprobengröße klein ist).


Tatsächlich habe ich dadurch die Aussage des OP falsch verstanden: Ich dachte, er sagte unwahrscheinlich. Beachten Sie, dass ich mit dir etwas nicht einverstanden sind : während ein Test , den Sie normalerweise sagt , wie unwahrscheinlich eine Beobachtung wäre , wenn die Nullhypothese wahr wäre, verwenden wir dies , dass zu argumentieren , da wir haben diese Beobachtung bekommen, die Nullhypothese wahr ist unwahrscheinlich.
Nick Sabbe

Danke für deine Antwort! Ich bin ein bisschen verwirrt von all den Aussagen, die in die andere Richtung gehen. Um es klar auszudrücken, meine Aufgabe ist es, eine Aussage über die Normalität der Stichprobe zu machen. Was würden Sie als Antwort auf meinen Professor vorschlagen? Und wie kann man Normalität zeigen, auch wenn die Stichprobengröße riesig ist?; S
Le Max

2
Das stärkste, was Sie sagen können, ist etwa: "Der QQ-Plot ist einigermaßen normal, aber der linke Schwanz ist ein wenig" kurz ". Es gibt leichte Anzeichen für eine Schräglage."
Glen_b

37

Wenn die Daten normal verteilt sind, liegen die Punkte im QQ-Normalplot auf einer geraden diagonalen Linie. Sie können diese Linie mit dem Befehl zu Ihrem QQ-Plot hinzufügen. qqline(x)Dabei xhandelt es sich um den Vektor der Werte.

Beispiele für Normal- und Nicht-Normalverteilung:

Normalverteilung

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

Der QQ-Normalplot mit der Linie:

qqnorm(x); qqline(x)

Bildbeschreibung hier eingeben

Die Abweichungen von der Geraden sind minimal. Dies zeigt eine normale Verteilung an.

Das Histogramm:

hist(x)

Bildbeschreibung hier eingeben

Nicht normale (Gamma) Verteilung

y <- rgamma(100, 1)

Die QQ-normale Handlung:

qqnorm(y); qqline(y)

Bildbeschreibung hier eingeben

Die Punkte folgen eindeutig einer anderen Form als der geraden Linie.

Das Histogramm bestätigt die Nichtnormalität. Die Verteilung ist nicht glockenförmig, sondern positiv verzerrt (dh die meisten Datenpunkte liegen in der unteren Hälfte). Histogramme von Normalverteilungen zeigen die höchste Häufigkeit in der Mitte der Verteilung.

hist(y)

Bildbeschreibung hier eingeben


Ich finde, dass es nützlich ist, die Konfidenzintervalle auf den qqplot zu schreiben. Nichts ist "vollkommen" normal, und die Stichprobengröße kann bestimmen, wie weit etwas ungenau und dennoch normal sein kann.
EngrStudent - Wiedereinsetzung von Monica am

@EngrStudent Müssen Sie Code freigeben, um das Konfidenzintervall in den qqplot aufzunehmen?
Danno

1
@danno Überprüfen Sie die qqPlotFunktion im carPaket.
Sven Hohenstein

@danno - schau dir "qqPlot" in der "Auto" -Bibliothek an. Es gibt es schon eine Weile und ich habe es nicht geschafft. Es werden die Konfidenzintervalle hinzugefügt. Sie können auch die Basisverteilung für einige nicht normale Verteilungen angeben. Es ist in meiner Antwort unten.
EngrStudent - Wiedereinsetzung von Monica

1
approximately

23

Einige Werkzeuge zur Überprüfung der Gültigkeit der Normalitätsannahme in 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

Es ist zwar eine gute Idee, visuell zu prüfen, ob Ihre Intuition mit dem Ergebnis eines Tests übereinstimmt, aber Sie können nicht erwarten, dass dies jedes Mal einfach ist. Wenn die Leute, die versuchen, das Higgs-Boson zu entdecken, ihren Ergebnissen nur vertrauen würden, wenn sie sie visuell beurteilen könnten, würden sie ein sehr scharfes Auge benötigen.

Insbesondere bei großen Datenmengen (und damit in der Regel mit zunehmender Leistung) werden in der Statistik kleinste Unterschiede festgestellt, auch wenn sie mit bloßem Auge kaum erkennbar sind.

Davon abgesehen: Normalerweise sollte Ihr QQ-Plot eine gerade Linie zeigen: Ich würde sagen, dass dies nicht der Fall ist. Es gibt deutliche Biegungen in den Schwänzen und sogar in der Mitte ist etwas Aufregung. Optisch könnte ich dennoch sagen (abhängig vom Ziel der Überprüfung der Normalität), dass diese Daten "vernünftig" normal sind.

Beachten Sie jedoch: Für die meisten Zwecke, bei denen Sie die Normalität überprüfen möchten, benötigen Sie nur die Normalität der Mittelwerte anstelle der Normalität der Beobachtungen, sodass der zentrale Grenzwertsatz möglicherweise ausreicht, um Sie zu retten. Außerdem: Während Normalität oft die Annahme ist, dass Sie "offiziell" prüfen müssen, hat sich gezeigt, dass viele Tests ziemlich unempfindlich sind, wenn diese Annahme nicht erfüllt wird.


2

Ich mag die Version aus der "R" -Bibliothek "Auto", weil sie nicht nur die zentrale Tendenz, sondern auch die Konfidenzintervalle liefert. Es gibt visuelle Anleitungen, um zu bestätigen, ob das Verhalten der Daten mit der hypothetischen Verteilung übereinstimmt.

library(car)

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

einige links:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.