Cara terbaik untuk berurusan dengan heteroskedastisitas?

19

Saya memiliki sebidang nilai residual dari model linier dalam fungsi nilai-nilai pas di mana heteroskedastisitas sangat jelas. Namun saya tidak yakin bagaimana saya harus melanjutkan sekarang karena sejauh yang saya mengerti heteroskedastisitas ini membuat model linier saya tidak valid. (Apakah itu benar?)

  1. Gunakan fitting linier yang kuat menggunakan rlm()fungsi MASSpaket karena tampaknya kuat untuk heteroskedastisitas.

  2. Karena kesalahan standar dari koefisien saya salah karena heteroskedastisitas, saya dapat menyesuaikan kesalahan standar agar kuat dengan heteroskedastisitas? Menggunakan metode yang diposting di Stack Overflow di sini: Regresi dengan Heteroskedasticity Standar Kesalahan Terkoreksi

Mana yang akan menjadi metode terbaik untuk digunakan untuk menangani masalah saya? Jika saya menggunakan solusi 2 apakah kemampuan prediksi model saya sama sekali tidak berguna?

Tes Breusch-Pagan menegaskan bahwa varians tidak konstan.

Residu saya dalam fungsi nilai yang dipasang terlihat seperti ini:

https://i.gyazo.com/9407a829a168492b31dfa3d1dd33a21d.png

(versi lebih besar)

TristanDM
sumber
Apakah maksud Anda 'stackoverflow' daripada 'stackexchange'? (Anda masih menggunakan stackexchange di sini.) Jika itu SO, umumnya lebih baik melakukan migrasi pertanyaan daripada memposting salinan kedua (bantuan meminta untuk tidak memposting Q yang sama beberapa kali, tetapi pilih satu tempat terbaik).
Glen_b -Reinstate Monica
Variasi dalam sebaran tidak begitu banyak sehingga dampaknya akan parah (yaitu, sementara itu akan bias kesalahan standar Anda dan dampak kesimpulan, itu mungkin tidak akan membuat perbedaan besar). Saya akan cenderung untuk mempertimbangkan apakah penyebaran terkait dengan mean, dan mungkin melihat GLM atau mungkin transformasi (tentu terlihat terkait dengan dipasang). Apa variabel y?
Glen_b -Reinstate Monica
2
Kemungkinan lain adalah untuk memodelkan heteroskedastisitas, misalnya, menggunakan glsdan salah satu struktur varians dari paket nlme.
Roland

Jawaban:

18

Itu pertanyaan yang bagus, tapi saya pikir itu pertanyaan yang salah. Angka Anda menjelaskan bahwa Anda memiliki masalah yang lebih mendasar daripada heteroskedastisitas, yaitu model Anda memiliki nonlinier yang belum Anda pertanggungjawabkan. Banyak masalah potensial yang dapat dimiliki suatu model (nonlinier, interaksi, pencilan, heteroskedastisitas, non-Normalitas) dapat saling menyamar. Saya tidak berpikir ada aturan yang keras dan cepat, tetapi secara umum saya akan menyarankan menangani masalah dalam urutan

outliers > nonlinearity > heteroscedasticity > non-normality

(misalnya, jangan khawatir tentang nonlinier sebelum memeriksa apakah ada pengamatan aneh yang membelokkan kecocokan; jangan khawatir tentang normalitas sebelum Anda khawatir tentang heteroskedastisitas).

Dalam kasus khusus ini, saya akan cocok dengan model kuadratik y ~ poly(x,2)(atau poly(x,2,raw=TRUE)atau y ~ x + I(x^2)dan melihat apakah itu membuat masalah hilang.

Ben Bolker
sumber
Plotnya kecil & sumbu tidak dilabeli. Saya tidak tahu apakah ini plot residual vs pas. Saya berasumsi OP termasuk istilah kuadrat, misalnya. Jika tidak, Anda jelas benar.
gung - Pasang kembali Monica
1
di browser saya, saya dapat melihat bahwa kisaran sumbu y bergerak dari -4 ke 3, yang tampaknya menyarankan plot sisa vs dipasang / mengesampingkan plot skala lokasi ...
Ben Bolker
1
Hai Ben, cintai apa yang Anda lakukan. Bisakah Anda memperluas gagasan bahwa "pencilan" adalah masalah terbesar? Apakah Anda memasukkan poin dengan leverage tinggi sebagai "pencilan" walaupun mereka memiliki sisa yang kecil? Saya berurusan dengan pengamatan nilai ekstrem sepanjang waktu di bidang pekerjaan saya (statistik lingkungan), dan saya menemukan bahwa beberapa orang (khususnya EPA) cenderung meledak jauh di luar proporsi (maafkan kata-kata yang tidak disengaja) dan merupakan cara untuk bersemangat untuk mengecualikan mereka. Saya cenderung mengadopsi sikap toleran terhadap pencilan jika saya tidak dapat menemukan bukti yang baik bahwa mereka jelas merupakan hasil kesalahan data (pengumpulan, entri).
Dalton Hance
1
@ DaltonHance: kita mungkin cukup banyak di halaman yang sama. Maksud saya adalah hanya jika Anda memiliki outlier (dengan definisi apa pun) dan mereka tidak diperhitungkan oleh model / pendekatan statistik apa pun yang Anda gunakan (model campuran, statistik yang kuat, distribusi berekor lemak, dll.), Maka itu akan cenderung mengacaukan semua sisa diagnostik Anda - itu akan membuat residu terlihat nonlinear / heteroscedastic / non-Normal. Saya tentu saja setuju bahwa Anda seharusnya tidak membuang-buang waktu tanpa berpikir / secara refleks.
Ben Bolker
8

Saya mencantumkan sejumlah metode untuk menangani heteroskedastisitas (dengan Rcontoh) di sini: Alternatif untuk ANOVA satu arah untuk data heteroskedastik . Banyak dari rekomendasi itu akan kurang ideal karena Anda memiliki variabel kontinu tunggal, daripada variabel kategori multi-level, tetapi mungkin lebih baik untuk dibaca sebagai gambaran umum.

Untuk situasi Anda, kuadrat terkecil tertimbang (mungkin dikombinasikan dengan regresi kuat jika Anda menduga mungkin ada beberapa outlier) akan menjadi pilihan yang masuk akal. Menggunakan kesalahan sandwich Huber-White juga bagus.

Inilah beberapa jawaban untuk pertanyaan spesifik Anda:

  1. Regresi yang kuat adalah pilihan yang layak, tetapi akan lebih baik jika dipasangkan dengan bobot menurut saya. Jika Anda tidak khawatir bahwa heteroskedastisitas disebabkan oleh pencilan, Anda bisa menggunakan regresi linier biasa dengan bobot. Ketahuilah bahwa varians bisa sangat sensitif terhadap pencilan, dan hasil Anda bisa peka terhadap bobot yang tidak pantas, jadi yang mungkin lebih penting daripada menggunakan regresi kuat untuk model akhir akan menggunakan ukuran dispersi yang kuat untuk memperkirakan bobot. Di utas tertaut, saya menggunakan 1 / IQR, misalnya.
  2. Kesalahan standar salah karena heteroskedastisitas. Anda dapat menyesuaikan kesalahan standar dengan penaksir sandwich Huber-White. Itulah yang dilakukan @GavinSimpson di utas SO tertaut.

XX

gung - Reinstate Monica
sumber
1
menggunakan regresi yang kuat dari paket lmrob akan secara otomatis menyimpulkan beberapa bobot, mengapa tidak menggunakannya di # 1?
tool.ish
1

Muat sandwich packagedan hitung matriks var-cov dari regresi Anda dengan var_cov<-vcovHC(regression_result, type = "HC4")(baca manual sandwich). Sekarang dengan lmtest packagemenggunakan coeftestfungsinya:

coeftest(regression_result, df = Inf, var_cov)
Giacomo Rosaspina
sumber
0

Seperti apa distribusi data Anda? Apakah itu terlihat seperti kurva lonceng sama sekali? Dari materi pelajaran, bisakah itu didistribusikan secara normal? Durasi panggilan telepon mungkin tidak negatif, misalnya. Jadi dalam kasus panggilan tertentu, distribusi gamma menggambarkannya dengan baik. Dan dengan gamma Anda dapat menggunakan model linier umum (glm dalam R)

Diego
sumber