So erstellen und interpretieren sie ein qq-diagramm in r


Ein QQ-Diagramm , kurz für „Quantil-Quantil“, ist eine Art Diagramm, mit dem wir bestimmen können, ob ein Datensatz möglicherweise aus einer theoretischen Verteilung stammt oder nicht.

Viele statistische Tests gehen davon aus, dass ein Datensatz einer Normalverteilung folgt, und ein QQ-Diagramm wird häufig verwendet, um zu beurteilen, ob diese Annahme erfüllt ist oder nicht.

Obwohl ein QQ-Plot kein formaler statistischer Test ist, bietet er eine einfache Möglichkeit, visuell zu überprüfen, ob ein Datensatz einer Normalverteilung folgt und, falls nicht, wie diese Annahme verletzt wird und welche Datenpunkte möglicherweise der Ursprung dieser Verletzung sind.

Wir können ein QQ-Diagramm erstellen, indem wir zwei Sätze von Quantilen gegeneinander grafisch darstellen. Wenn beide Quantilsätze aus derselben Verteilung stammen, sollten die Punkte im Diagramm ungefähr eine gerade diagonale Linie bilden.

Beispiel für ein QQ-Plot

Quantile stellen Punkte in einem Datensatz dar, unterhalb derer ein bestimmter Teil der Daten liegt. Quantil 0,9 stellt beispielsweise den Punkt dar, unter den 90 % der Daten fallen. Das 0,5-Quantil stellt den Punkt dar, unter dem 50 % der Daten liegen, und so weiter.

QQ-Diagramme identifizieren die Quantile Ihrer Datenstichproben und vergleichen sie mit den Quantilen einer theoretischen Verteilung. In den meisten Fällen wird die Normalverteilung verwendet, aber ein QQ-Diagramm kann tatsächlich für jede theoretische Verteilung erstellt werden.

Wenn die Datenpunkte in einem QQ-Diagramm entlang einer geraden diagonalen Linie liegen, folgt der Datensatz wahrscheinlich einer Normalverteilung.

So erstellen Sie ein QQ-Diagramm in R

Mit der integrierten Funktion qqnorm() können wir ganz einfach ein QQ-Diagramm erstellen, um zu überprüfen, ob ein Datensatz einer Normalverteilung folgt.

Der folgende Code generiert beispielsweise einen Vektor aus 100 Zufallswerten, der einer Normalverteilung folgt, und erstellt ein QQ-Diagramm für diesen Datensatz, um zu überprüfen, ob er tatsächlich einer Normalverteilung folgt:

 #make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a normal distribution
data <- rnorm(100)

#create QQ plot to compare this dataset to a theoretical normal distribution
qqnorm(data)

Um noch einfacher zu erkennen, ob die Daten einer geraden Linie folgen, können wir die Funktion qqline() verwenden:

 #create QQ plot
qqnorm(data)

#add straight diagonal line to plot
qqline(data)

Wir können sehen, dass die Datenpunkte in der Nähe der Enden nicht genau der geraden Linie folgen, aber zum größten Teil scheinen diese Beispieldaten normalverteilt zu sein (was auch sein sollte, da wir R gebeten haben, die Daten aus einer Normalverteilung zu generieren ). ).

Betrachten Sie stattdessen den folgenden Code, der einen Vektor aus 100 Zufallswerten generiert, der einer Gammaverteilung folgt, und ein QQ-Diagramm für diese Daten erstellt, um zu überprüfen, ob sie einer Normalverteilung folgen:

 #make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a gamma distribution
data <- rgamma(100, 1)

#create QQ plot to compare this dataset to a theoretical normal distribution
qqnorm(data)
qqline(data)

Wir können in diesem QQ-Diagramm eine deutliche Abweichung von der geraden Linie erkennen, was darauf hindeutet, dass dieser Datensatz wahrscheinlich keiner Normalverteilung folgt.

Betrachten Sie einen weiteren Codeabschnitt, der einen Vektor aus 100 Zufallswerten generiert, der einer Chi-Quadrat-Verteilung mit 5 Freiheitsgraden folgt, und ein QQ-Diagramm für diese Daten erstellt, um zu überprüfen, ob sie einer Normalverteilung folgen:

 #make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a Chi-Square distribution
data <- rchisq(100, 5)

#create QQ plot to compare this dataset to a theoretical normal distribution
qqnorm(data)
qqline(data)

Wieder einmal können wir sehen, dass dieser Datensatz keiner Normalverteilung zu folgen scheint, insbesondere in der Nähe der Enden.

Ändern Sie die Ästhetik eines QQ-Plots in R

Wir können einige Ästhetiken des QQ-Diagramms in R ändern, einschließlich Titel, Achsenbeschriftungen, Datenpunktfarben, Linienfarbe und Linienbreite.

Der folgende Code ändert die Titel, Achsenbeschriftungen und die Farbe der Plotpunkte:

 #make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a normal distribution
data <- rnorm(100)

#create QQ plot
qqnorm(data, main = 'QQ Plot for Normality', xlab = 'Theoretical Dist',
       ylab = 'Sample dist', col = 'steelblue')

Dann fügt der folgende Code dem Diagramm eine gerade diagonale Linie mit roter Farbe, einer Linienbreite von 2 (lwd = 2, Standard ist 1) und einer gestrichelten Linie (lty = 2, Standard ist 1) hinzu:

 qqline(data, col = 'red', lwd = 2, lty = 2)

Technische Hinweise

Bedenken Sie, dass ein QQ-Diagramm lediglich eine Möglichkeit ist, visuell zu überprüfen, ob ein Datensatz einer theoretischen Verteilung folgt. Um formal zu testen, ob ein Datensatz einer bestimmten Verteilung folgt oder nicht, können die folgenden Tests durchgeführt werden (vorausgesetzt, Sie vergleichen Ihren Datensatz mit einer Normalverteilung):

Anderson-Darling-Test
Shapiro-Wilk-Test
Kolmogorov-Smirnov-Test

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert