Jawaban:
Itu akan tergantung pada sifat heteroskedastisitas. Jika Anda menginginkan interval prediksi, Anda biasanya memerlukan spesifikasi parametrik seperti:
Contoh fungsi yang mungkin termasuk; (Studi tentang laba perusahaan, contoh dari "Analisis Ekonometrik" Greene edisi 7, CH 9), di mana adalah yang pengamatan variabel dependen, atau, jika bekerja dengan data time series, GARCH dan / atau spesifikasi volatilitas stokastik.
Anda dapat menggunakan taksiran sebagai kesalahan standar untuk interval prediksi Anda jika . Saya akan mengabaikan perlakuan formal di sini karena akuntansi untuk kesalahan estimasi dalam bisa rumit tetapi, dengan sampel yang cukup besar, mengabaikan kesalahan estimasi tidak berpengaruh interval prediksi yang banyak. Singkatnya, tidak perlu membuka kaleng cacing di sini. Untuk penjelasan lebih rinci tentang semua ini dan lebih banyak contoh, lihat buku Wooldridge "Introductory Econometrics: A Modern Approach" , Bab 8.
Masalahnya adalah ketika orang merujuk pada regresi heteroskedastik atau "kuat", mereka biasanya merujuk pada situasi di mana sifat tepat heteroskedastisitas (fungsi ) tidak diketahui, dalam hal ini penaksir Putih atau dua langkah digunakan. Ini menawarkan perkiraan konsisten untuk tetapi tidak untuk , dan karenanya Anda tidak memiliki cara alami untuk memperkirakan interval prediksi. Saya berpendapat bahwa interval prediksi tidak berarti dalam konteks ini. Ide di balik penaksir tipe sandwich ini adalah untuk secara konsisten memperkirakan kesalahan standar dari koefisien,, tanpa beban menawarkan interval prediksi yang akurat untuk setiap pengamatan individu, sehingga membuat perkiraan lebih "kuat".
Untuk lebih jelasnya, di atas hanya mempertimbangkan regresi kuadrat terkecil. Bentuk lain dari regresi non-parametrik, seperti regresi kuantil, dapat menawarkan cara untuk memperoleh interval prediksi tanpa spesifikasi parametrik dari kesalahan standar residual.
Regresi kuantil nonparametrik memberikan pendekatan yang sangat umum yang memungkinkan heteroskedastisitas dan nonlinieritas. Lihat bagian 9: http://www.econ.uiuc.edu/~roger/research/rq/vig.pdf
PEMBARUAN: Suatu perkiraan yang masuk akal untuk interval prediksi 90% adalah ruang antara kurva regresi persentil ke-5 dan kurva regresi persentil ke-95. (Bergantung pada detail teknik estimasi kurva dan sparsitas data, Anda mungkin ingin menggunakan sesuatu yang lebih seperti persentil ke-4 dan ke-96 sebagai "konservatif"). Intuisi untuk jenis interval prediksi nonparametrik ada di wikipedia .
Jawaban ini hanyalah titik awal. Sejumlah besar pekerjaan telah dilakukan pada interval prediksi regresi kuantil . Atau hanya membuat interval prediksi regresi nonparametrik .
Jika regresi respons Anda pada variabel penjelas Anda adalah garis lurus dan varians Anda meningkat dengan variabel penjelas, model regresi berbobot diperlukan dengan atau (jika varian non-konstan Anda lebih ekstrim) sebagai bobot Anda. Ini menimbang varians Anda dengan nilai x Anda, sehingga ada hubungan proporsional.
Berikut kode dengan bobot yang termasuk dalam model dan prediksi. Perhatikan bahwa Anda perlu menambahkan bobot ke dataset asli dan dataset baru Anda.
Terima kasih kepada @PopcornKing untuk kode aslinya dari Menghitung interval prediksi dari data heteroscedastic .
library(ggplot2)
dummySamples <- function(n, slope, intercept, slopeVar){
x = runif(n)
y = slope*x+intercept+rnorm(n, mean=0, sd=slopeVar*x)
return(data.frame(x=x,y=y))
}
myDF <- dummySamples(20000,3,0,5)
plot(myDF$x, myDF$y)
w = 1/myDF$x**2
t = lm(y~x, data=myDF, weights=w)
summary(t)
newdata = data.frame(x=seq(0,1,0.01))
w = 1/newdata$x**2
p1 = predict.lm(t, newdata, interval = 'prediction', weights=w)
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2])
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2], color='blue')
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2], color='blue')
newdata$lwr = p1[,c("lwr")]
newdata$upr = p1[,c("upr")]
a <- a + geom_ribbon(data=newdata, aes(x=x,ymin=lwr, ymax=upr), fill='yellow', alpha=0.3)
a