Một cách để tiếp cận câu hỏi này là xem xét ngược lại: làm thế nào chúng ta có thể bắt đầu với các phần dư được phân phối bình thường và sắp xếp chúng thành không đồng nhất? Từ quan điểm này, câu trả lời trở nên rõ ràng: liên kết các phần dư nhỏ hơn với các giá trị dự đoán nhỏ hơn.
Để minh họa, đây là một công trình rõ ràng.
Dữ liệu ở bên trái rõ ràng là không đồng nhất so với sự phù hợp tuyến tính (hiển thị màu đỏ). Điều này được dẫn về nhà bởi phần dư so với cốt truyện dự đoán ở bên phải. Nhưng - bằng cách xây dựng - tập hợp các phần dư không có thứ tự gần với phân phối bình thường, như biểu đồ của chúng ở giữa cho thấy. (Giá trị p trong thử nghiệm tính chuẩn của Shapiro-Wilk là 0,60, thu được bằng R
lệnh được shapiro.test(residuals(fit))
ban hành sau khi chạy mã bên dưới.)
Dữ liệu thực cũng có thể trông như thế này. Đạo đức là tính không đồng nhất đặc trưng cho mối quan hệ giữa kích thước còn lại và dự đoán trong khi tính quy tắc không cho chúng ta biết gì về phần dư có liên quan đến bất cứ điều gì khác.
Đây là R
mã cho công trình này.
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
chức năng của gói xe choR
tiến hành một thử nghiệm chính thức cho các biến ngẫu nhiên. Trong ví dụ của whuber, lệnhncvTest(fit)
mang lại giá trị gần như bằng 0 và cung cấp bằng chứng mạnh mẽ chống lại phương sai lỗi không đổi (tất nhiên là được dự kiến).