Salah satu cara untuk mendekati pertanyaan ini adalah dengan melihatnya secara terbalik: bagaimana kita bisa mulai dengan residu terdistribusi normal dan mengaturnya menjadi heteroskedastik? Dari sudut pandang ini jawabannya menjadi jelas: kaitkan residu yang lebih kecil dengan nilai prediksi yang lebih kecil.
Sebagai ilustrasi, berikut adalah konstruksi eksplisit.
Data di sebelah kiri jelas heteroscedastic relatif terhadap kecocokan linear (ditunjukkan dalam warna merah). Ini didorong pulang oleh residual vs prediksi plot di sebelah kanan. Tetapi - dengan konstruksi - kumpulan residu yang tidak berurutan mendekati terdistribusi secara normal, sebagaimana ditunjukkan oleh histogram mereka di tengah. (Nilai p dalam uji normalitas Shapiro-Wilk adalah 0,60, diperoleh dengan R
perintah yang shapiro.test(residuals(fit))
dikeluarkan setelah menjalankan kode di bawah ini.)
Data nyata dapat terlihat seperti ini juga. Moral adalah bahwa heteroskedastisitas mencirikan hubungan antara ukuran residu dan prediksi sedangkan normalitas tidak memberi tahu kita tentang bagaimana residu berhubungan dengan hal lain.
Ini adalah R
kode untuk konstruksi ini.
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
fungsi dari paket mobil untukR
melakukan tes formal untuk heteroskedastisitas. Dalam contoh whuber, perintahncvTest(fit)
menghasilkan nilai- yang hampir nol dan memberikan bukti kuat terhadap varians kesalahan konstan (yang diharapkan, tentu saja).