Eine Möglichkeit, sich dieser Frage zu nähern, besteht darin, sie umgekehrt zu betrachten: Wie können wir mit normalverteilten Residuen beginnen und sie heteroskedastisch anordnen? Unter diesem Gesichtspunkt wird die Antwort offensichtlich: Verknüpfen Sie die kleineren Residuen mit den kleineren vorhergesagten Werten.
Zur Veranschaulichung hier eine explizite Konstruktion.
Die Daten links sind im Vergleich zur linearen Anpassung (rot dargestellt) eindeutig heteroskedastisch. Dies wird durch die Residuen gegenüber dem vorhergesagten Diagramm auf der rechten Seite nach Hause getrieben . Aber - konstruktionsbedingt - ist die ungeordnete Menge von Residuen nahezu normalverteilt, wie das Histogramm in der Mitte zeigt. (Der p-Wert im Shapiro-Wilk-Normalitätstest beträgt 0,60 und wird mit dem R
Befehl ermittelt shapiro.test(residuals(fit))
, der nach dem Ausführen des folgenden Codes ausgegeben wird.)
Auch echte Daten können so aussehen. Die Moral ist, dass Heteroskedastizität eine Beziehung zwischen Restgröße und Vorhersagen charakterisiert, während Normalität nichts darüber aussagt, wie sich die Residuen auf etwas anderes beziehen.
Hier ist der R
Code für diese Konstruktion.
set.seed(17)
n <- 256
x <- (1:n)/n # The set of x values
e <- rnorm(n, sd=1) # A set of *normally distributed* values
i <- order(runif(n, max=dnorm(e))) # Put the larger ones towards the end on average
y <- 1 + 5 * x + e[rev(i)] # Generate some y values plus "error" `e`.
fit <- lm(y ~ x) # Regress `y` against `x`.
par(mfrow=c(1,3)) # Set up the plots ...
plot(x,y, main="Data", cex=0.8)
abline(coef(fit), col="Red")
hist(residuals(fit), main="Residuals")
plot(predict(fit), residuals(fit), cex=0.8, main="Residuals vs. Predicted")
ncvTest
R
ncvTest(fit)