Bagaimana menafsirkan koefisien dalam regresi Poisson?

64

Bagaimana saya bisa menginterpretasikan efek utama (koefisien untuk faktor kode-dummy) dalam regresi Poisson?

Asumsikan contoh berikut:

treatment     <- factor(rep(c(1, 2), c(43, 41)), 
                        levels = c(1, 2),
                        labels = c("placebo", "treated"))
improved      <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)),
                        levels = c(1, 2, 3),
                        labels = c("none", "some", "marked"))    
numberofdrugs <- rpois(84, 10) + 1    
healthvalue   <- rpois(84, 5)   
y             <- data.frame(healthvalue, numberofdrugs, treatment, improved)
test          <- glm(healthvalue~numberofdrugs+treatment+improved, y, family=poisson)
summary(test)

Outputnya adalah:

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)       1.88955    0.19243   9.819   <2e-16 ***
numberofdrugs    -0.02303    0.01624  -1.418    0.156    
treatmenttreated -0.01271    0.10861  -0.117    0.907   MAIN EFFECT  
improvedsome     -0.13541    0.14674  -0.923    0.356   MAIN EFFECT 
improvedmarke    -0.10839    0.12212  -0.888    0.375   MAIN EFFECT 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Saya tahu bahwa tingkat kejadiannya numberofdrugsadalah exp(-0.023)=0.977. Tetapi bagaimana saya mengartikan efek utama untuk variabel dummy?

gung - Reinstate Monica
sumber
Jawaban serupa (tetapi dibingkai lebih matematis) dapat ditemukan di sini: Cara menginterpretasikan estimasi parameter dalam hasil Poisson GLM .
gung - Reinstate Monica
Sangat menarik bahwa pertanyaan yang dirujuk ditutup sebagai di luar topik. (Saya tidak akan setuju bahwa itu di luar topik, karena jawaban apa pun juga akan berlaku untuk output dari setiap program statistik yang mengembalikan tabel koefisien kepada pengguna, dan setuju dengan Anda bahwa itu layak berdasarkan pada dasar menjadi duplikat.) Menurut saya komunitas SO terlalu "ketat" pada pertanyaan yang meminta interpretasi output dari R. Mereka tidak benar-benar pada topik untuk StackOverflow karena tidak ada saran bahwa bantuan pengkodean diperlukan.
DWin
@Din, saya tidak berpikir menafsirkan output statistik di luar topik tentang Cross Validated . Saya memilih untuk menutup pertanyaan itu sebagai duplikat dari ini. Orang lain tampaknya telah memilih OT, saya kumpulkan, karena bagi mereka tampaknya OP "membuang [ed] komputer mereka di sana dan [berharap seseorang akan] menjalankan analisis stat untuk [mereka]".
gung - Reinstate Monica
1
@ungung: Saya jelas bahwa bukan Anda yang memanggilnya OT. Komentar Anda jelas tentang hal itu. (Saya pikir saya setuju dengan Anda.) "Alasan" yang tercantum pada pemungutan suara dekat seringkali merupakan keputusan mayoritas atau pluralitas.
DWin

Jawaban:

56

numberofdrugsKoefisien eksponensial adalah istilah multiplikatif yang digunakan untuk menghitung taksiran healthvalueketika numberofdrugsmeningkat sebesar 1 unit. Dalam kasus variabel kategoris (faktor), koefisien eksponensial adalah istilah multiplikatif relatif terhadap tingkat dasar (faktor pertama) untuk variabel tersebut (karena R menggunakan kontras perlakuan secara default). Ini exp(Intercept)adalah tingkat dasar, dan semua perkiraan lain akan relatif terhadap itu.

Dalam contoh Anda perkiraan healthvalueuntuk seseorang yang menggunakan 2narkoba, "placebo"dan improvement=="none"akan menjadi (menggunakan penambahan di dalam exp sebagai setara dengan perkalian):

 exp( 1.88955 + 2*-0.02303 + 0 + 0 )
 [1] 6.318552

Sementara seseorang di 4obat, "treated"dan "some"perbaikan akan memiliki perkiraan healthvaluedari

exp( 1.88955 + 4*-0.02303 + -0.01271 + -0.13541)
[1] 5.203388

TAMBAHKAN: Inilah artinya menjadi "aditif pada skala log". "Aditif pada skala log-odds" adalah ungkapan yang digunakan guru saya, Barbara McKnight, ketika menekankan perlunya menggunakan semua koefisien istilah yang diterapkan dalam regresi logistik ketika melakukan segala jenis prediksi. Anda menambahkan pertama semua koefisien kali nilai kovariat dan kemudian eksponensial. Cara untuk mengembalikan koefisien dari objek regresi di R umumnya menggunakan coef()fungsi ekstraktor (dilakukan dengan realisasi acak berbeda di bawah):

 coef(test)
  #   (Intercept)    numberofdrugs treatmenttreated     improvedsome   improvedmarked 
  #   1.18561313       0.03272109       0.05544510      -0.09295549       0.06248684 

Jadi perhitungan estimasi untuk subjek dengan 4obat "treated",, dengan "some"peningkatan akan menjadi:

 exp( sum( coef(test)[ c(1,2,3,4) ]* c(1,4,1,1) ) ) 
 [1] 3.592999

Dan prediktor linier untuk kasus tersebut harus merupakan jumlah dari:

 coef(test)[c(1,2,3,4)]*c(1,4,1,1) 
 #    (Intercept)    numberofdrugs treatmenttreated     improvedsome 
 #     1.18561313       0.13088438       0.05544510      -0.09295549

Prinsip-prinsip ini harus berlaku untuk setiap paket statistik yang mengembalikan tabel koefisien kepada pengguna. Metode dan prinsip lebih umum daripada yang mungkin muncul dari penggunaan saya atas R.


Saya menyalin komentar klarifikasi yang dipilih karena 'menghilang' di tampilan default:

T: Jadi Anda menafsirkan koefisien sebagai rasio! Terima kasih! - MarkDollar

A: Koefisien adalah natural_logarithms dari rasio. - DWIN

T2: Dalam kasus itu, dalam regresi poisson, apakah koefisien eksponensial juga disebut sebagai "rasio odds"? - oort

A2: Tidak. Jika itu adalah regresi logistik mereka akan tetapi dalam regresi Poisson, di mana LHS adalah jumlah peristiwa dan penyebut tersirat adalah angka yang berisiko, maka koefisien eksponensial adalah "rasio tingkat" atau "risiko relatif".

DWIN
sumber
Jadi itu memungkinkan Anda memilih dua kali? Bagusnya. Saya pikir menawarkan implementasi kode R dari interpretasi mungkin menyelamatkannya dari kekuatan kejelasan klasifikasi. OP menyusun contoh yang bagus dan lengkap. Mungkin saya seharusnya menunjukkan fungsi extractor, jadi saya pikir saya akan melakukannya.
DWin
Ya, saya meningkatkan tanggapan Anda pada SO, kemudian pindah ke sini dan saya meningkatkan lagi :)
Brandon Bertelsen
Terima kasih sejauh ini! Saya tahu hubungan antara boneka dan boneka binatang, tapi saya hanya tertarik bagaimana menafsirkan efek utama (saya menandai mereka). Apakah mungkin untuk mengambil tingkat insiden dari efek Utama, misalnya untuk dummy yang diperlakukan 'exp (-0.012) = 0,99' dan menafsirkannya sebagai tingkat dari mana nilai healt menurun, ketika beralih dari kategori referensi ke yang dirawat? Itu pasti, bukan?
MarkDollar
Koefisien eksponensial selalu ditafsirkan sebagai rasio. Rasio 'apa' ke 'apa' tergantung pada unit analisis. 'Tarif' berbeda, memiliki angka dan nilai waktu implisit. Jadi, jika Anda bersedia mengubah terminologi Anda, maka mungkin, 'ya ". Jawaban terbaik datang dari menggambarkan situasi analisis sepenuhnya.
DWin
Ah ok inilah yang ingin saya ketahui. Jadi Anda menafsirkan koefisien sebagai rasio! Terima kasih!
MarkDollar