Medienbildung für Kinder + Jugendliche - ein sicherer Umgang mit Medien ist heutzutage wichtiger denn je. Das Bürgerradio in Jena tut dies mit dem Projekt "Rabatz" seit 20 Jahren sehr erfolgreich - nun streicht die Stadt die Finanzierung. Hilf mit, diese wichtige Tätigkeit zu erhalten.

Normalverteilung der Residuen bei der Regression in R testen

von | Jun 10, 2020 | Normalverteilung, R

Ziel des Tests der Residuen auf Normalverteilung

Grundsätzlich hat eine lineare Regression die Voraussetzungen das deren Residuen (nicht die unabhängigen oder die abhängige Variable an sich) in etwa normalverteilt sind. Prinzipiell gibt es dazu die grafische als auch die analytische Methode, die ich jeweils nachfolgend vorstellen werde.

 

Vorarbeiten für die Analyse

Zunächst bedarf es der Aufstellung eines linearen Modells, dessen Residuen letztlich auf Normalverteilung getestet werden sollen. Hierzu verwendet man die „lm()-Funktion“, mit der man das lineare Regressionsmodell definiert. In meinem Fall möchte ich den Abiturschnitt (mit Abischnitt abgekürzt) durch den Intelligenzquotient (IQ) erklären. Die Residuen sind einfach gesagt die Unterschiede zwischen den beobachteten, also den tatsächlichen y-Werten, und den durch das Modell geschätzten bzw. prognostizierten y-Werten.


model <- lm(Abischnitt~IQ, data = data_xls)

 

Im Rahmen der Berechnung des linearen Modells werden von R automatisch standardisierte und nicht standardisierte Residuen berechnet und im Modell-Summary gespeichert. Diese gilt es nun auf Normalverteilung zu prüfen. Man kann sie sich mit

rstandard(model)

bzw.

residuals(model)

ausgeben lassen, verwendet sie aber im Rahmen von Histogramm und Q-Q-Diagramm weiter.  

 

Normalverteilung der Residuen in R testen: Grafische Methode

Es gibt insgesamt zwei Diagramme, die häufig zur Prüfung der Residuen auf Normalverteilung herangezogen werden und von R recht einfach ausgegeben werden können:

  1. Histogramm sowie
  2. Q-Q-Diagramm

 

Dieses Video ansehen auf YouTube.

Fragen können unter dem verlinkten Video gerne auf YouTube gestellt werden.

 

Histogramm der Residuen erstellen und interpretieren

Das Histogramm bekommt man für die standardisierten bzw. nicht standardisierten Residuen mit dem Befehl „hist()“.


hist(rstandard(model))
hist(residuals(model))

 

  Nachfolgend habe ich mir nur für die standardisierten Residuen ein Histogramm ausgeben lassen:

Histogramm Residuen

 

Die Interpretation ist hier recht einfach. Normalverteilung liegt in etwa vor, wenn in der Mitte des Histogramms mehr Residuen liegen als außen. Die oft zitierte Glockenform sollte erahnbar sein. Perfekte Normalverteilung sollte man nicht erwarten, weil es sie in praktischen Anwendungen kaum geben wird. Im Beispiel oben kann man schon eine sehr gute Normalverteilung erkennen. Hier würde man also von Normalverteilung der Residuen ausgehen und demzufolge die Voraussetzung als erfüllt ansehen.

 

Q-Q-Plot der Residuen erstellen und interpretieren

Das Q-Q-Diagramm erhält man mit dem qqnorm()-Befehl, in den man erneut rstandard(model) einsetzt:


qqnorm(rstandard(model))

qq-diagramm residuen

 

Auf den ersten Blick ist es hier nicht ganz so eindeutig. Perfekte Normalverteilung würde vorliegen, wenn man eine Ursprungsgerade erkennen würde. Eine Ursprungsgerade würde heißen, dass der x-Wert und der y-Wert identisch sind, also das theoretische Quantil dem Stichprobenquantil entsprechen würden. Um es etwas einfacher erkennen zu können, kann man sich eine Urpsungsgerade mit der Funktion qqline() zusätzlich einzeichnen zu lassen.


qqline(rstandard(model))

 

qq-Diagramm residuen

Hier kann man nun ganz gut erkennen, wie nah die Residuen an einer perfekten Normalverteilung dran sind. Abweichungen, speziell oben rechts und unten links sind nahezu immer zu beobachten aber kein Grund zur Besorgnis. Die überwiegende Menge an Punkten liegt sehr nah an der Gerade und bisweilen auch darauf. Auch hiermit erkennt man eine hinreichende Normalverteilung der Residuen, was das Weiterrechnen der linearen Regression gestattet.

 

Normalverteilung in R testen: Analytische Methode

Als analytischen Test verwendet man – sofern man überhaupt analytisch testet (Hinweis unten beachten), den Shapiro-Wilk-Test. Dieser Test geht in seiner Nullhypothese davon aus, dass Normalverteilung der Daten vorliegt. Es sollte also das Ziel sein, die Nullhypothese nicht verwerfen zu können. Hierfür ist es notwendig, dass der Signifikanzwert (sog. p-Wert) über 0,05 liegt. shapiro.test() ist der Befehl hierfür:


shapiro.test(rstandard(model))

 

Das Ergebnis Tests ist relativ nüchtern gehalten:


Shapiro-Wilk normality test 
data: rstandard(model) 
W = 0.98481, p-value = 0.7532

Im Ergebnis ist anhand des sehr großen p-Wertes von 0,7532 ein Verwerfen der Nullhypothese von Normalverteilung nicht möglich. Es wird daher von Normalverteilung der Residuen ausgegangen.

ACHTUNG: Der Shapiro-Wilk-Test kann zu fehlerhaften Aussagen führen. Warum und was man dagegen tun kann, zeige ich in diesem Artikel ausführlich.  

Weitere nützliche Tutorials findest du auf meinem YouTube-Kanal.

 

Hat dir der Beitrag geholfen?

Dann würde ich mich über eine kleine Spende freuen, die es mir erlaubt, weiterhin kostenfreie Inhalte zu veröffentlichen.

Vielen Dank und viel Erfolg!

Über mich

Björn Walther

Excel- und SPSS-Experte

YouTube-Kanal

Excel Online-Kurs

YouTube-Kanal

Medienbildung für Kinder + Jugendliche - ein sicherer Umgang mit Medien ist heutzutage wichtiger denn je. Das Bürgerradio in Jena tut dies mit dem Projekt "Rabatz" seit 20 Jahren sehr erfolgreich - nun streicht die Stadt die Finanzierung. Hilf mit, diese wichtige Tätigkeit zu erhalten.