วิธีหนึ่งในการเข้าถึงคำถามนี้คือมองย้อนกลับไป: เราจะเริ่มต้นด้วยการแจกแจงสิ่งที่เหลือตามปกติและจัดการให้เป็นแบบ heteroscedastic ได้อย่างไร จากมุมมองนี้คำตอบจะชัดเจน: เชื่อมโยงส่วนที่เหลือที่เล็กลงกับค่าที่คาดการณ์ไว้ที่เล็กลง
เพื่อแสดงให้เห็นนี่คือโครงสร้างที่ชัดเจน
ข้อมูลทางด้านซ้ายนั้นมีความแตกต่างอย่างชัดเจนเมื่อเทียบกับตัวแบบเชิงเส้น (แสดงเป็นสีแดง) นี่คือบ้านขับรถโดยส่วนที่เหลือเทียบกับพล็อตที่คาดการณ์ไว้ทางด้านขวา แต่ด้วยการก่อสร้างชุดเศษซากที่ไม่ได้เรียงลำดับนั้นใกล้เคียงกับการแจกแจงแบบปกติเนื่องจากฮิสโตแกรมที่อยู่ตรงกลางแสดงให้เห็น (ค่า p ในการทดสอบ Shapiro-Wilk ของภาวะปกติคือ 0.60 ซึ่งได้มาพร้อมกับR
คำสั่งที่shapiro.test(residuals(fit))
ออกให้หลังจากรันโค้ดด้านล่าง)
ข้อมูลจริงสามารถมีลักษณะเช่นนี้ได้เช่นกัน ศีลธรรมคือความแตกต่างของลักษณะนิสัยความสัมพันธ์ระหว่างขนาดที่เหลือและการคาดการณ์ในขณะที่ปกติจะบอกอะไรเราเกี่ยวกับวิธีการตกค้างที่เกี่ยวข้องกับสิ่งอื่น
นี่คือR
รหัสสำหรับการก่อสร้างนี้
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
การดำเนินการทดสอบอย่างเป็นทางการสำหรับ heteroscedasticity ในตัวอย่างของ whuber คำสั่งncvTest(fit)
ให้ผลที่เกือบเป็นศูนย์และให้หลักฐานที่ชัดเจนเกี่ยวกับความแปรปรวนผิดพลาดคงที่ (ซึ่งคาดว่าแน่นอน)