Sıfır şişirilmiş Poisson modelinin gizli değişken formülasyonu için MLE'leri hesaplamak için EM algoritmasını nasıl kullanırsınız?


10

Sıfır Poisson regresyon modeli bir numune için tanımlandığı şişirilmiş ile Y i = { 0 olasılığı ile p ı + ( 1 - s i ) E - λ ı k olasılığı ile ( 1 - p i ) e - λ i λ k i / k ! ve ayrıca λ =(y1,,yn)

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

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

Sıfır şişirilmiş Poisson regresyon modelinin karşılık gelen log olasılığı

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

Burada, ve G tasarım matrisleridir. Bu matrisler, iki oluşturma işlemi için kullanmak istediği özelliklere bağlı olarak aynı olabilir. Bununla birlikte, aynı sayıda satıra sahiptirler.BG

Zi=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!)]
zi=0zi=1

Zi=0Zi=1


f

f

Yanıtlar:


11

Yaşadığınız zorluğun kökü cümledir:

Daha sonra EM algoritmasını kullanarak ikinci log olasılığını en üst düzeye çıkarabiliriz.

zi

kthzi(k1)th

λ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 

1-zhatβλi

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

GpiEzi=pi/(pi+(1pi)exp(λi))

Bunu gerçek veriler için yapmak istiyorsanız, sadece algoritmayı anlamak yerine, R paketleri zaten var; kütüphaneyi kullanan bir örnek http://www.ats.ucla.edu/stat/r/dae/zipoisson.htmpscl .

DÜZENLEME: Yaptığımız şeyin, eksik veri / gizli değişkenlerin beklenen değerleri ile tam veri günlüğü olasılığını en üst düzeye çıkarmak DEĞİL, tam veri günlüğü olasılığının beklenen değerini en üst düzeye çıkarmak olduğunu vurgulamalıyım. tam veri günlüğü olasılığı eksik verilerde doğrusaldır, burada olduğu gibi, iki yaklaşım aynıdır, ancak aksi halde değildir.


@Cokes, bu bilgiyi mevcut bir cevabı değiştirmemek yerine kendi ek cevabınız olarak eklemelisiniz. Bu düzenleme onaylanmamış olmalıdır.
gung - Monica'yı eski durumuna döndürün
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.