Membandingkan berarti terlalu lemah: sebagai gantinya, bandingkan distribusi.
Ada juga pertanyaan mengenai apakah lebih diinginkan untuk membandingkan ukuran residu (seperti yang dinyatakan) atau membandingkan residu itu sendiri. Karena itu, saya mengevaluasi keduanya.
R(x,y)xyyxq0q1>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", ...)
}
Argumen kelima untuk fungsi ini abs0,, secara default menggunakan ukuran (nilai absolut) dari residu untuk membentuk grup. Nanti kita bisa menggantinya dengan fungsi yang menggunakan residu itu sendiri.
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+β2x2sdq0q1abs0n.trialsn(x,y)data, dari residu mereka, dan plot qq dari banyak percobaan - untuk membantu kami memahami bagaimana tes yang diusulkan bekerja untuk model yang diberikan (sebagaimana ditentukan oleh n, beta, s dan sd). Contoh plot ini muncul di bawah.
Mari kita sekarang menggunakan alat-alat ini untuk mengeksplorasi beberapa kombinasi realistis nonlinier dan heteroskedastisitas, menggunakan nilai absolut residu:
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
Mari kita lakukan hal yang sama, menggunakan data yang persis sama , tetapi menganalisis residu itu sendiri. Untuk melakukan ini, blok kode sebelumnya dijalankan kembali setelah melakukan modifikasi ini:
size <- function(x) x

x
Mungkin menggabungkan kedua teknik ini akan berhasil. Simulasi-simulasi ini (dan variasi dari mereka, yang dapat dijalankan oleh pembaca yang tertarik di waktu luang) menunjukkan bahwa teknik-teknik ini bukan tanpa prestasi.
x(x,y^−x)kita dapat mengharapkan tes yang diusulkan menjadi kurang kuat daripada tes berbasis regresi seperti Breusch-Pagan .
IVs yang sama ? Jika demikian, saya tidak dapat melihat intinya karena split residual sudah menggunakan informasi itu. Bisakah Anda memberi contoh di mana Anda pernah melihat ini, ini baru bagi saya?