So erstellen sie ein histogramm von residuen in r
Eine der Hauptannahmen der linearen Regression ist, dass die Residuen normalverteilt sind.
Eine Möglichkeit, diese Annahme visuell zu überprüfen, besteht darin, ein Histogramm der Residuen zu erstellen und zu beobachten, ob die Verteilung einer „Glockenform“ folgt, die an die Normalverteilung erinnert.
Dieses Tutorial bietet ein schrittweises Beispiel für die Erstellung eines Histogramms von Residuen für ein Regressionsmodell in R.
Schritt 1: Erstellen Sie die Daten
Lassen Sie uns zunächst einige gefälschte Daten erstellen, mit denen wir arbeiten können:
#make this example reproducible set.seed(0) #createdata x1 <- rnorm(n=100, 2, 1) x2 <- rnorm(100, 4, 3) y <- rnorm(100, 2, 3) data <- data.frame(x1, x2, y) #view first six rows of data head(data) x1 x2 y 1 3.262954 6.3455776 -1.1371530 2 1.673767 1.6696701 -0.6886338 3 3.329799 2.1520303 5.8081615 4 3.272429 4.1397409 3.7815228 5 2.414641 0.6088427 4.3269030 6 0.460050 5.7301563 6.6721111
Schritt 2: Passen Sie das Regressionsmodell an
Als nächstes passen wir ein multiples lineares Regressionsmodell an die Daten an:
#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=data)
Schritt 3: Erstellen Sie ein Histogramm der Residuen
Abschließend verwenden wir das Visualisierungspaket ggplot , um ein Histogramm der Modellresiduen zu erstellen:
#load ggplot2
library (ggplot2)
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
Beachten Sie, dass wir mit dem Argument „bin“ auch die Anzahl der Bins angeben können, in denen die Reste platziert werden sollen.
Je weniger Kästchen vorhanden sind, desto breiter werden die Balken im Histogramm. Beispielsweise könnten wir 20 Bins angeben:
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(bins = 20 , fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
Oder wir könnten 10 Bins angeben:
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(bins = 10 , fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
Unabhängig davon, wie viele Kästchen wir angeben, können wir sehen, dass die Residuen ungefähr normalverteilt sind.
Wir könnten auch einen formalen statistischen Test wie Shapiro-Wilk, Kolmogorov-Smirnov oder Jarque-Bera durchführen, um die Normalität zu testen.
Beachten Sie jedoch, dass diese Tests empfindlich auf große Stichprobengrößen reagieren – das heißt, sie kommen oft zu dem Schluss, dass die Residuen nicht normal sind, wenn die Stichprobengröße groß ist.
Aus diesem Grund ist es oft einfacher, die Normalität zu beurteilen, indem ein Histogramm der Residuen erstellt wird.