การเปรียบเทียบค่าเฉลี่ยนั้นอ่อนเกินไป: เปรียบเทียบการแจกแจงแทน
นอกจากนี้ยังมีคำถามเกี่ยวกับว่ามันเป็นที่พึงปรารถนาที่จะเปรียบเทียบขนาดของส่วนที่เหลือ (ตามที่ระบุ) หรือเปรียบเทียบตัวเอง ดังนั้นฉันประเมินทั้งสองอย่าง
จะเฉพาะเจาะจงเกี่ยวกับสิ่งที่มีความหมายและนี่คือบางR
รหัสเพื่อเปรียบเทียบข้อมูล (รับในอาร์เรย์แบบขนานและ) โดยถอยYบนxหารเหลือเข้าไปในสามกลุ่มโดยการตัดพวกเขาด้านล่าง quantile Q 0และเหนือ quantile Q 1 > q 0และ (โดยใช้พล็อต qq) เปรียบเทียบการแจกแจงของค่าx ที่เกี่ยวข้องกับสองกลุ่มเหล่านั้น(x,y)x
y
yxq0q1>q0x
test <- function(y, x, q0, q1, abs0=abs, ...) {
y.res <- abs0(residuals(lm(y~x)))
y.groups <- cut(y.res, quantile(y.res, c(0,q0,q1,1)))
x.groups <- split(x, y.groups)
xy <- qqplot(x.groups[[1]], x.groups[[3]], plot.it=FALSE)
lines(xy, xlab="Low residual", ylab="High residual", ...)
}
อาร์กิวเมนต์ที่ห้าของฟังก์ชันนี้ abs0
โดยค่าเริ่มต้นจะใช้ขนาด (ค่าสัมบูรณ์) ของเศษเหลือเพื่อจัดกลุ่ม ต่อมาเราสามารถแทนที่ด้วยฟังก์ชั่นที่ใช้ของเหลือเอง
ส่วนที่เหลือจะถูกใช้เพื่อตรวจสอบหลายสิ่ง: ค่าผิดปกติ, ความสัมพันธ์ที่เป็นไปได้กับตัวแปรภายนอก, ความดีของความพอดีและความเป็นเนื้อเดียวกัน คนนอกโดยธรรมชาติของพวกเขาควรมีจำนวนน้อยและโดดเดี่ยวดังนั้นจึงไม่มีบทบาทที่มีความหมายที่นี่ เพื่อให้การวิเคราะห์นี้ง่ายขึ้นให้สำรวจสองสิ่งสุดท้าย: ความดีของความพอดี (นั่นคือความเป็นเส้นตรงของความสัมพันธ์ - y ) และความเป็นเนื้อเดียวกัน (นั่นคือความคงตัวของขนาดที่เหลือ) เราสามารถทำได้ผ่านการจำลองสถานการณ์:xy
simulate <- function(n, beta0=0, beta1=1, beta2=0, sd=1, q0=1/3, q1=2/3, abs0=abs,
n.trials=99, ...) {
x <- 1:n - (n+1)/2
y <- beta0 + beta1 * x + beta2 * x^2 + rnorm(n, sd=sd)
plot(x,y, ylab="y", cex=0.8, pch=19, ...)
plot(x, res <- residuals(lm(y ~ x)), cex=0.8, col="Gray", ylab="", main="Residuals")
res.abs <- abs0(res)
r0 <- quantile(res.abs, q0); r1 <- quantile(res.abs, q1)
points(x[res.abs < r0], res[res.abs < r0], col="Blue")
points(x[res.abs > r1], res[res.abs > r1], col="Red")
plot(x,x, main="QQ Plot of X",
xlab="Low residual", ylab="High residual",
type="n")
abline(0,1, col="Red", lwd=2)
temp <- replicate(n.trials, test(beta0 + beta1 * x + beta2 * x^2 + rnorm(n, sd=sd),
x, q0=q0, q1=q1, abs0=abs0, lwd=1.25, lty=3, col="Gray"))
test(y, x, q0=q0, q1=q1, abs0=abs0, lwd=2, col="Black")
}
y∼β0+β1x+β2x2sd
q0q1abs0
n.trials
n
(x,y)ข้อมูลของเหลือใช้ของพวกเขาและแปลง qq ของการทดสอบหลายครั้ง - เพื่อช่วยให้เราเข้าใจว่าการทดสอบที่นำเสนอนั้นทำงานอย่างไรสำหรับแบบจำลองที่กำหนด (ตามที่กำหนดโดยn
เบต้าและ s sd
) ตัวอย่างของแปลงเหล่านี้ปรากฏอยู่ด้านล่าง
ให้เราใช้เครื่องมือเหล่านี้เพื่อสำรวจการผสมผสานระหว่างความไม่เชิงเส้นและความแตกต่างแบบสมจริงโดยใช้ค่าสัมบูรณ์ของส่วนที่เหลือ:
n <- 100
beta0 <- 1
beta1 <- -1/n
sigma <- 1/n
size <- function(x) abs(x)
set.seed(17)
par(mfcol=c(3,4))
simulate(n, beta0, beta1, 0, sigma*sqrt(n), abs0=size, main="Linear Homoscedastic")
simulate(n, beta0, beta1, 0, 0.5*sigma*(n:1), abs0=size, main="Linear Heteroscedastic")
simulate(n, beta0, beta1, 1/n^2, sigma*sqrt(n), abs0=size, main="Quadratic Homoscedastic")
simulate(n, beta0, beta1, 1/n^2, 5*sigma*sqrt(1:n), abs0=size, main="Quadratic Heteroscedastic")
xxx
xxxค่า
ลองทำสิ่งเดียวกันโดยใช้ข้อมูลเดียวกันแต่วิเคราะห์ส่วนที่เหลือเอง เมื่อต้องการทำเช่นนี้บล็อกของรหัสก่อนหน้านี้จะรันใหม่อีกครั้งหลังจากทำการปรับเปลี่ยนนี้:
size <- function(x) x
การเปลี่ยนแปลงนี้ตรวจไม่พบ heteroscedasticity ดี: ดูความคล้ายคลึงกันของแปลง qq ในสองคอลัมน์แรก อย่างไรก็ตามมันทำงานได้ดีในการตรวจจับความไม่เชิงเส้น นี่เป็นเพราะเศษที่เหลือแยกxแบ่งออกเป็นส่วนตรงกลางและส่วนนอกซึ่งจะค่อนข้างแตกต่างกัน ดังที่แสดงในคอลัมน์ด้านขวาสุดอย่างไรก็ตามความแตกต่างของความยืดหยุ่นสามารถปิดบังความไม่เชิงเส้นได้
บางทีอาจรวมกันทั้งคู่เทคนิคนี้เข้าด้วยกัน การจำลองเหล่านี้ (และการเปลี่ยนแปลงของพวกเขาซึ่งผู้อ่านที่สนใจสามารถทำงานได้ในยามว่าง) แสดงให้เห็นว่าเทคนิคเหล่านี้ไม่ได้ทำโดยปราศจากบุญ
โดยทั่วไปแล้วจะมีการให้บริการที่ดีกว่าโดยการตรวจสอบสิ่งตกค้างในรูปแบบมาตรฐาน สำหรับงานอัตโนมัติการทดสอบอย่างเป็นทางการได้รับการพัฒนาขึ้นเพื่อตรวจจับสิ่งต่าง ๆ ที่เรามองหาในแปลงที่เหลือ ยกตัวอย่างเช่นการทดสอบ Breusch-Pagan จะลดค่าเศษกำลังสอง (แทนที่จะเป็นค่าสัมบูรณ์)x. การทดสอบที่เสนอในคำถามนี้สามารถเข้าใจได้ในวิญญาณเดียวกัน อย่างไรก็ตามโดยการ binning ข้อมูลเป็นเพียงสองกลุ่มและทำให้ละเลยข้อมูลbivariateส่วนใหญ่ที่จ่ายโดย( x , y^- x )คู่เราสามารถคาดหวังการทดสอบเสนอให้มีประสิทธิภาพน้อยกว่าการทดสอบการถดถอยตามเช่น Breusch
IV
s เดียวกันหรือไม่ ถ้าเป็นเช่นนั้นฉันไม่เห็นจุดนี้เนื่องจากการแยกส่วนที่เหลือกำลังใช้ข้อมูลนั้นอยู่แล้ว คุณช่วยยกตัวอย่างตำแหน่งที่คุณเห็นนี่มันใหม่สำหรับฉันได้ไหม