Bu soruya yaklaşmanın bir yolu soruyu tersine bakmaktır: normal olarak dağıtılan artıklarla nasıl başlayabilir ve bunları heterossedastik olarak nasıl düzenleyebiliriz? Bu bakış açısından cevap açık hale gelir: küçük kalıntıları daha küçük tahmin edilen değerlerle ilişkilendirin.
Açıklamak gerekirse, işte açık bir yapı.
Soldaki veriler doğrusal uyum (göreceli olarak kırmızı ile) göre açıkça heterossedastiktir. Bu artıklar ile ev sürülür vs sağda tahmin arsa. Ancak - yapı olarak - sıralanmamış artıklar seti , ortadaki histogramlarının gösterdiği gibi normal dağılıma yakındır. (Shapiro-Wilk normallik testindeki p değeri 0.60 olup, aşağıdaki kodu çalıştırdıktan sonra verilen R
komutla elde edilir shapiro.test(residuals(fit))
.)
Gerçek veriler de böyle görünebilir. Ahlaki, heterossedastisitenin artık boyut ve tahminler arasındaki bir ilişkiyi karakterize etmesidir, oysa normallik bize artıkların artık başka bir şeyle nasıl ilişkili olduğu hakkında hiçbir şey söylemez.
İşte R
bu yapının kodu.
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
işlevini, heterosensedastisite için resmi bir test yapmak için kullanabilirsiniz. Whuber örneğinde, komut neredeyse sıfır olan ve sabit hata varyansına (elbette beklenen) karşı güçlü kanıtlar sağlayan bir p değeri verir .R
ncvTest(fit)