Test auf Normalität von Daten in R

Jesse John 21 Juni 2023
  1. Anwendbarkeit der gegebenen Techniken
  2. Zeichnen Sie die Daten
  3. Verwenden Sie den Shapiro-Wilk-Normalitätstest in R
  4. Das Quantil-Quantil-Diagramm in R
  5. Abschluss
Test auf Normalität von Daten in R

Viele statistische Tests oder Techniken gehen davon aus, dass die Stichprobe, die wir haben, mit der Normalverteilung zusammenhängt. Bei einigen Tests oder Verfahren kann davon ausgegangen werden, dass die Stichprobe aus einer normalverteilten Grundgesamtheit stammt.

Andere mögen annehmen, dass die zufälligen Fehler (Residuen) unserer Daten aus einer Normalverteilung stammen. R bietet uns mehrere Möglichkeiten, um zu testen, ob unsere Daten (ursprünglich oder residual) einer Normalverteilung folgen.

In diesem Artikel werden drei einfache, beliebte Techniken zum Testen nicht gruppierter, univariater Daten auf Normalität betrachtet.

Beispielcode:

# First, we will create the data for our demonstrations.

# Large normal population.
set.seed(951)
p = rnorm(100000,100,5)

# Plot the population.
hist(p, breaks=100)

# Take a sample from the normal population.
set.seed(753)
s1 = sample(p, size=125, replace=FALSE)

# Create a non-normal sample.
# A vector (population).
v = c(31:81)

# Non-normal sample.
set.seed(159)
s2 = sample(v, 2000, replace=TRUE)

Anwendbarkeit der gegebenen Techniken

Die folgenden Techniken gelten für die uns zur Verfügung stehenden Daten. Sie sagen uns, ob die Daten akzeptabel normal sind oder nicht.

Daher sind sie nur zur Schlussfolgerung der verfügbaren Daten zu verwenden.

Insbesondere erlauben sie keinen Rückschluss auf die Grundgesamtheit, aus der die Daten (Stichprobe) stammen. Diese Schlussfolgerungen hängen von der statistischen Theorie ab, die für die zur Gewinnung der Stichprobe verwendete Stichprobentechnik relevant ist.

Zeichnen Sie die Daten

Wir beginnen mit einem qualitativen Ansatz, der als Ausgangspunkt geeignet ist. Ein einfaches Histogramm zeigt, ob die Daten eine Glockenform wie die normale Kurve haben.

Beispielcode:

# Plot the sample from the normal population.
hist(s1, breaks=25)

# Plot the non-normal sample.
hist(s2, breaks=25)

Ein Plot der aus der Normalpopulation gezogenen Stichprobe.

Diagramm der normalen Probe

Ein Diagramm der nicht normalen Probe.

Diagramm einer nicht normalen Probe

Wir finden, dass die Stichprobe aus der Normalpopulation eine ungefähre Glockenform hat. Die nicht normale Probe ähnelt einem Rechteck.

Verwenden Sie den Shapiro-Wilk-Normalitätstest in R

Der Shapiro-Wilk-Test für die Normalität von Daten ist ein weit verbreiteter statistischer Test.

Die Funktion shapiro.test() nimmt einen Datenvektor von 3 bis 5000 Elementen. Genauer gesagt ist dies der Bereich des Vektors für die Anzahl der nicht fehlenden Elemente.

Der Test geht davon aus, dass die Daten normal sind. Das ist die Nullhypothese.

Es gibt eine W-Statistik und einen p-Wert zurück. Eine W-Statistik nahe 1 bedeutet, dass die Verteilung fast normal ist.

Diese Interpretation muss jedoch mit dem zurückgegebenen p-Wert kombiniert werden.

Ein p-Wert grösser als 0.05 lässt den Schluss zu, dass die Stichprobe normalverteilt ist.

Beispielcode:

# Run the Shapiro-Wilk test on the samples.

# Sample from normal population.
shapiro.test(s1)

# Non-normal sample.
shapiro.test(s2)

Ausgang:

> # Sample from normal population.
> shapiro.test(s1)

	Shapiro-Wilk normality test

data:  s1
W = 0.99353, p-value = 0.8383

> # Non-normal sample.
> shapiro.test(s2)

	Shapiro-Wilk normality test

data:  s2
W = 0.95117, p-value < 2.2e-16

Wir stellen fest, dass die Stichprobe aus der Normalbevölkerung eine hohe W-Statistik und einen hohen p-Wert hat. Die Stichprobe folgt genau der Normalverteilung.

Allerdings hat die nicht-normale Probe erwartungsgemäß einen extrem niedrigen p-Wert. Es bestätigt, dass die Stichprobe nicht der Normalverteilung folgt.

Das Quantil-Quantil-Diagramm in R

Der Quantil-Quantil-Plot (auch Q-Q-Plot genannt) ist eine weitere qualitative Technik zum Testen auf Normalität.

Bei diesem Test werden Quantile aus den Stichprobendaten gegen entsprechende Quantile aus einer Standardnormalverteilung aufgetragen. Bei ausreichender linearer Korrelation zwischen den Quantilen sind beide Verteilungen ähnlich; die Stichprobendaten folgen einer Normalverteilung.

Wenn der Plot grafisch eine fast gerade Linie ergibt, unterstützt dies die Schlussfolgerung, dass die Probe fast normal ist.

Die Funktion qqnorm() erstellt ein Q-Q-Diagramm in R.

Beispielcode:

# Plot the Q-Q plots for both the samples.

# Q-Q plot of sample from the normal population.
qqnorm(s1)

# Q-Q plot for the non-normal sample.
qqnorm(s2)

Q-Q-Plot der Stichprobe aus der Normalpopulation. Der Graph ist fast eine gerade Linie.

Q-Q-Diagramm einer normalen Probe

Q-Q-Diagramm der nicht normalen Probe. Der Plot ist eine gekrümmte Linie. Die Probe war nicht normal.

Q-Q-Diagramm einer nicht normalen Probe

Abschluss

In der Praxis ergänzen sich alle drei oben genannten Ansätze. Der Shapiro-Wilk-Test kann einen sehr niedrigen p-Wert ergeben, wenn die Stichprobengröße sehr groß ist.

Visuelle Techniken helfen uns, eine richtige Schlussfolgerung zu ziehen.

Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

Verwandter Artikel - R Test