Bagaimana Anda menggunakan algoritma EM untuk menghitung MLE untuk formulasi variabel laten dari model Poisson nol yang meningkat?

10

Model regresi Poisson nol meningkat didefinisikan untuk sampel oleh dan selanjutnya mengasumsikan bahwa parameter dan memenuhiY i = { 0 dengan probabilitas p i + ( 1 - p i ) e - λ i k dengan probabilitas ( 1 - p i ) e - λ i λ k i / k !(y1,,yn)

Yi={0with probability pi+(1pi)eλikwith probability (1pi)eλiλik/k!
p =λ=(λ1,,λn)p=(p1,,pn)

log(λ)=Bβlogit(p)=log(p/(1p))=Gγ.

Log kemungkinan yang sesuai dari model regresi Poisson nol meningkat adalah

L(γ,β;y)=yi=0log(eGiγ+exp(eBiβ))+yi>0(yiBiβeBiβ)i=1nlog(1+eGiγ)yi>0log(yi!)

Di sini, dan adalah matriks desain. Matriks ini bisa sama, tergantung pada fitur yang ingin digunakan untuk dua proses menghasilkan. Mereka memiliki jumlah baris yang sama.BG

Dengan asumsi bahwa kita dapat mengamati ketika berasal dari kondisi sempurna, nol dan ketika berasal dari keadaan Poisson, kemungkinan log-nya adalahZi=1YiZi=0Yi

L(γ,β;y,z)=i=1nlog(f(zi|γ))+i=1nlog(f(yi|zi,β))

=i=1nzi(Giγlog(1+eGiγ))+i=1n(1zi)log(1+eGiγ)+i=1n(1zi)[yiBiβeBiβlog(yi!)]
Dua istilah pertama adalah hilangnya dalam regresi logistik untuk memisahkan dari z_i = 1 . Istilah kedua adalah regresi ke poin yang dihasilkan oleh proses Poisson.zi=0zi=1

Tetapi bukankah variabel laten tidak dapat diamati? Tujuannya adalah untuk memaksimalkan kemungkinan log pertama. Tetapi kita harus memperkenalkan variabel laten dan mendapatkan kemungkinan log yang baru. Kemudian menggunakan algoritma EM, kita bisa memaksimalkan log-likelihood kedua. Tetapi ini mengasumsikan bahwa kita tahu bahwa atau ?Zi=0Zi=1

Damien
sumber
Apa itu ? Juga, sebagian besar pertanyaan ini tampaknya sebagian besar dipotong dan disisipkan dari pertanyaan sebelumnya yang berbeda oleh @Robby. Apa itu kamu? f
Makro
@ Macro: Makro ya itu saya. Saya tidak yakin apa itu . Koran itu tidak pernah mengatakan. f
Damien

Jawaban:

11

Akar kesulitan yang Anda hadapi terletak pada kalimat:

Kemudian menggunakan algoritma EM, kita bisa memaksimalkan log-likelihood kedua.

Seperti yang telah Anda amati, Anda tidak bisa. Alih-alih, apa yang Anda maksimalkan adalah nilai yang diharapkan dari kemungkinan log kedua (dikenal sebagai "kemungkinan log data lengkap"), di mana nilai yang diharapkan diambil alih . zi

Ini mengarah ke prosedur berulang, di mana pada iterasi Anda menghitung nilai yang diharapkan dari mengingat estimasi parameter dari iterasi ( (ini dikenal sebagai "E-step" ",) lalu gantilah dengan kemungkinan log data lengkap (lihat EDIT di bawah ini untuk alasan mengapa kami dapat melakukan ini dalam kasus ini), dan maksimalkan hal itu sehubungan dengan parameter untuk mendapatkan perkiraan untuk iterasi saat ini (" M-step " .)kthzi(k1)th

Kemungkinan log data lengkap untuk Poisson nol-digembungkan dalam kasus paling sederhana - dua parameter, katakan dan - memungkinkan untuk penyederhanaan substansial ketika datang ke langkah-M, dan ini sampai batas tertentu ke formulir Anda. Saya akan menunjukkan kepada Anda bagaimana cara kerjanya dalam kasus sederhana melalui beberapa kode R, sehingga Anda dapat melihat esensi dari itu. Saya tidak akan menyederhanakan sebanyak mungkin, karena itu dapat menyebabkan hilangnya kejelasan ketika Anda memikirkan masalah Anda:λp

# Generate data
# Lambda = 1,  p(zero) = 0.1
x <- rpois(10000,1)
x[1:1000] <- 0

# Sufficient statistic for the ZIP
sum.x <- sum(x)

# (Poor) starting values for parameter estimates
phat <- 0.5
lhat <- 2.0

zhat <- rep(0,length(x))
for (i in 1:100) {
  # zhat[x>0] <- 0 always, so no need to make the assignment at every iteration
  zhat[x==0] <- phat/(phat +  (1-phat)*exp(-lhat))

  lhat <- sum.x/sum(1-zhat) # in effect, removing E(# zeroes due to z=1)
  phat <- mean(zhat)   

  cat("Iteration: ",i, "  lhat: ",lhat, "  phat: ", phat,"\n")
}

Iteration:  1   lhat:  1.443948   phat:  0.3792712 
Iteration:  2   lhat:  1.300164   phat:  0.3106252 
Iteration:  3   lhat:  1.225007   phat:  0.268331 
...
Iteration:  99   lhat:  0.9883329   phat:  0.09311933 
Iteration:  100   lhat:  0.9883194   phat:  0.09310694 

Dalam kasus Anda, pada setiap langkah Anda akan melakukan regresi Poisson tertimbang di mana bobotnya 1-zhatuntuk mendapatkan perkiraan dan karenanya , dan kemudian memaksimalkan:βλi

(Ezilogpi+(1Ezi)log(1pi))

sehubungan dengan vektor koefisien matriks Anda untuk mendapatkan estimasi . Nilai yang diharapkan , sekali lagi dihitung pada setiap iterasi.p i E z i = p i / ( p i + ( 1 - p i ) exp ( - λ i ) )GpiEzi=pi/(pi+(1pi)exp(λi))

Jika Anda ingin melakukan ini untuk data nyata, bukan hanya memahami algoritma, paket R sudah ada; inilah contohnya http://www.ats.ucla.edu/stat/r/dae/zipoisson.htm menggunakan psclperpustakaan.

EDIT: Saya harus menekankan bahwa apa yang kita lakukan adalah memaksimalkan nilai yang diharapkan dari kemungkinan log data-lengkap, BUKAN memaksimalkan kemungkinan data log lengkap dengan nilai-nilai yang diharapkan dari data yang hilang / variabel laten terpasang. Seperti yang terjadi, jika log data lengkap kemungkinan linear dalam data yang hilang, seperti di sini, kedua pendekatan itu sama, tetapi sebaliknya, mereka tidak.

Jbowman
sumber
@ Kokas, Anda harus menambahkan informasi ini sebagai jawaban tambahan Anda sendiri, bukan mengubah jawaban yang ada. Hasil edit ini seharusnya tidak disetujui.
gung - Reinstate Monica