Saya mencoba membantu seorang mahasiswa dari seorang kolega. Siswa mengamati dan menghitung perilaku burung (jumlah panggilan) dalam pengaturan eksperimental. Jumlah panggilan yang dikaitkan dengan burung yang diamati secara spesifik selama setiap percobaan tidak dapat ditentukan tetapi menghitung jumlah burung yang berkontribusi terhadap jumlah panggilan yang direkam dimungkinkan. Karenanya saran awal saya adalah memasukkan jumlah burung sebagai istilah offset dalam model GLM Poisson, maka kami akan menyesuaikan jumlah panggilan yang diharapkan per burung .
Masalah dengan ini adalah bahwa selama banyak kesempatan pengamatan tidak ada burung (dan karenanya tidak ada panggilan) yang diamati. Perangkat lunak (R dalam hal ini) mengeluh karena (R mengeluh tentang berisi data tetapi itu murni hasil dari menjadi ).y
-Inf
offset(log(nbirds))
-Inf
Saya sebenarnya curiga kita membutuhkan model rintangan (atau serupa) di mana kita memiliki model binomial terpisah untuk "panggilan terpantau?" (atau tidak) dan model hitungan terpotong untuk jumlah panggilan (per burung) dalam situasi di mana ada panggilan, di mana kami menyertakan istilah offset hanya dalam bagian hitungan model.
Setelah mencoba ini menggunakan paket pscl di R, tapi saya masih mendapatkan kesalahan yang sama:
mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
offset(log(NumberCOPO)) | 1, data = Data,
dist = "poisson")
karena kode R yang sama ( glm.fit
digunakan secara internal oleh hurdle()
agar sesuai dengan bagian model hitungan) sedang memeriksa -Inf
meskipun saya tidak berpikir itu akan mempengaruhi model yang cocok untuk pengamatan tersebut. (Apakah itu asumsi yang benar?)
Saya bisa mendapatkan model yang pas dengan menambahkan sejumlah kecil ke NumberCOPO
(katakanlah 0.0001
) tapi ini adalah tipuan yang terbaik.
Apakah menambahkan koreksi kontinuitas kecil ini boleh dilakukan dalam praktek? Jika tidak, pendekatan lain apa yang harus kita pertimbangkan ketika menangani data di mana kita mungkin ingin menggunakan offset dalam model Poisson di mana variabel offset dapat mengambil nilai 0? Semua contoh yang saya temui adalah untuk situasi di mana 0 tidak mungkin untuk variabel offset.
sumber
Jawaban:
Jadi respons yang ingin Anda modelkan adalah "Jumlah panggilan per burung" dan garis yang merepotkan adalah di mana Anda tidak mengamati burung? Letakkan saja baris-baris itu. Mereka tidak menambahkan informasi ke hal yang Anda coba modelkan.
sumber
glm.fit
yang melempar goyangan bahkan jika nilai-nilai itu tidak masuk hitungan bagian dari model. Saya kira saya bisa melakukan model rintangan dengan tangan tetapi saya tidak ingin melakukan ini, hanya menyarankan siswa.Dalam Poisson GLM, offset hanyalah penskalaan multiplikasi pada laju Poisson yang sedang dimodelkan - dan Poisson dengan laju nol tidak membantu atau bahkan bermakna ...
Itu sebabnya Spacedman benar!
sumber
Cobalah melakukannya (Hurdle) "dengan tangan (untuk tujuan" didaktik / senam "): dibagi menjadi bagian binomial dan bagian cout dan nikmati logit pas dan regresi cout secara terpisah! Atau gunakan model Hurdle standar (+ uji Vuong) Poisson / negBin / Gamma ..., GAM. Kamu tidak butuh "offset" di sini, menurutku. ;-)
sumber