Pemodelan regresi dengan varian yang tidak sama

22

Saya ingin menyesuaikan model linier (lm) di mana varians residual jelas tergantung pada variabel penjelas.

Cara saya tahu untuk melakukan ini adalah dengan menggunakan glm dengan keluarga Gamma untuk memodelkan varians, dan kemudian menempatkan kebalikannya ke dalam bobot dalam fungsi lm (contoh: http://nitro.biosci.arizona.edu/r/chapter31 .pdf )

Aku ingin tahu:

  • Apakah ini satu-satunya teknik?
  • Apa pendekatan lain yang relevan?
  • Paket / fungsi R apa yang relevan dengan pemodelan tipe ini? (selain glm, lm)
Tal Galili
sumber
4
Di mana mereka menggunakan glm()maka lm()dalam bab Anda link ke. Menurut saya glm()hanya itulah yang diperlukan dan digunakan di sana, tetapi saya mungkin telah melewatkan sesuatu. Anda dapat mencoba kuadrat terkecil umum ( gls()dalam nlme ) yang memungkinkan bobot diperkirakan untuk mengontrol jenis heteroskedastisitas yang Anda sebutkan; lihat ?varFuncdan ikuti tautan dari sana. IIRC varFixed()akan melakukan apa yang Anda inginkan.
Pasang kembali Monica - G. Simpson
Dalam 'proc mixed', 'subject = option' menghasilkan struktur blok-diagonal dalam matriks varians-kovarians residual. Sudahkah Anda mempertimbangkan model campuran linier umum untuk mengubah hipotesis homoscedasticity?
ocram
Terima kasih Gavin, saya telah melihat sedikit pada fungsi-fungsi ini. Dua pertanyaan: 1) Apakah Anda merekomendasikan tutorial? (Saya curiga MASS buku saya menjadi awal yang baik, tetapi bertanya-tanya apakah Anda memiliki pemikiran tentang itu). 2) Karena model yang saya pas adalah OLS sederhana, bagaimana perbedaan estimasi untuk saat menggunakan fungsi gls? (Jika saya ingat dengan benar - tidak banyak, karena itu harus bekerja pada beberapa pendekatan tingkat pertama iteratif, tapi saya sama sekali tidak yakin tentang ini). Ocram - terima kasih, tapi saya tidak menggunakan SAS.
Tal Galili
Di sini, di Bagian 2 dijelaskan bagaimana melakukan ini di STATA untuk regresi kuasipoisson : stata.com/meeting/fnasug08/gutierrez.pdf . Jika seseorang dapat menyarankan cara untuk mengode ulang ini dalam R, saya akan sangat berterima kasih.
a11msp

Jawaban:

17

Pil yang melawan "efek megafon" meliputi (antara lain):

  1. Gunakan log atau akar kuadrat transformasi . Ini tidak tepat tetapi terkadang menjinakkan pelebaran.Y
  2. Gunakan regresi kuadrat terkecil tertimbang . Dalam pendekatan ini, setiap pengamatan diberi faktor varians sendiri. Jawaban ini menunjukkan bagaimana menggunakan WLSR dalam R (misalnya jika varians residu sebanding dengan cara, Anda dapat memberikan bobot kebalikan dari nilai pas dalam model tanpa bobot).
  3. Gunakan regresi yang kuat. Fungsi rlm()dalam MASSpaket R melakukan estimasi-M, yang seharusnya kuat terhadap ketidaksamaan varian.

Sunting Juli 2017: Tampaknya kuadrat terkecil yang digeneralisasi, seperti yang disarankan dalam jawaban Greg Snow, adalah salah satu opsi terbaik.

gui11aume
sumber
2
Saya membangun jawaban ini untuk pertanyaan Stack Overflow .
Peter Ellis
1
Bisa bernilai menunjukkan opsi kuadrat terkecil yang digeneralisasi juga, menggunakan gls dengan opsi bobot diatur ke varFixed () - bagi saya ini akan tampak seperti salah satu opsi yang lebih elegan ...
Tom Wenseleers
@ TomWenseleers saya setuju. Perhatikan bahwa ini adalah jawaban dari Greg Snow.
gui11aume
9

Dengan paket gamlss Anda dapat memodelkan distribusi kesalahan dari respons sebagai fungsi linier, non-linier, atau fungsi halus dari variabel penjelas. Ini tampaknya merupakan pendekatan yang sangat kuat (saya belajar banyak tentang semua kemungkinan yang mungkin muncul selama proses pemilihan model) dan semuanya dijelaskan dengan baik dalam beberapa publikasi (termasuk buku) yang dirujuk pada tautan di atas.

ils
sumber
8

The glsfungsi dalam nlmepaket untuk R dapat memperkirakan regresi dan hubungan dengan varians pada waktu yang sama. Lihat weightsargumen dan contoh ke-2 di halaman bantuan.

Greg Snow
sumber