Interval Prediksi dengan Heteroscedasticity

8

Saya menggunakan R untuk melakukan regresi linier. Saya telah melihat cara untuk menghitung interval prediksi, tetapi ini tergantung pada data homoscedastic. Apakah ada cara untuk menghitung interval prediksi dengan data heteroskedastik?

Andy
sumber

Jawaban:

4

Itu akan tergantung pada sifat heteroskedastisitas. Jika Anda menginginkan interval prediksi, Anda biasanya memerlukan spesifikasi parametrik seperti:

yiN(xiβ,σi(xi,zi))
yaitu biasanya didistribusikan dengan mean , dan deviasi standar , di mana deviasi standar adalah beberapa fungsi yang diketahui dari atau mungkin beberapa set variabel lain , dengan cara itu Anda dapat memperkirakan standar deviasi untuk setiap observasi.yixiβσi(xi,zi)xiziith

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. σi2(xi)=σ2xi,kxi,kithkth

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.σ^i(xi,zi)σ^i(xi,zi)

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. σi(xi,zi)var(β^)σi 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".

Edit:

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.

Zachary Blumenfeld
sumber
4

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 .

zkurtz
sumber
Benar, tetapi bagaimana Anda mendapatkan interval prediksi dalam regresi kuantil?
Zachary Blumenfeld
2

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

masukkan deskripsi gambar di sini

LindsayL
sumber