Mengapa algoritma EM harus berulang?

9

Misalkan Anda memiliki populasi dengan unit, masing-masing dengan variabel acak . Anda mengamati nilai untuk setiap unit yang . Kami ingin perkiraan .X iPoisson ( λ ) n = N - n 0 X i > 0 λNXiPoisson(λ)n=Nn0Xi>0λ

Ada metode momen dan cara kemungkinan bersyarat maksimum untuk mendapatkan jawaban, tapi saya ingin mencoba algoritma EM. Saya mendapatkan algoritma EM menjadi mana subskrip menunjukkan nilai dari iterasi sebelumnya dari algoritma dan adalah konstan sehubungan dengan parameter. (Saya benar-benar berpikir bahwa dalam fraksi dalam tanda kurung harus , tetapi itu tampaknya tidak akurat; pertanyaan untuk waktu lain).-1Knn+1

Q(λ1,λ)=λ(n+nexp(λ1)1)+log(λ)i=1nxi+K,
1Knn+1

Untuk membuat ini konkret, anggaplah bahwa , . Tentu saja, dan tidak teramati dan harus diperkirakan.n=10xi=20Nn0λ

Ketika saya mengulangi fungsi berikut, memasukkan nilai maksimum iterasi sebelumnya, saya mencapai jawaban yang benar (diverifikasi oleh CML, MOM, dan simulasi sederhana):

EmFunc <- function(lambda, lambda0){
  -lambda * (10 + 10 / (exp(lambda0) - 1)) + 20 * log(lambda)
}

lambda0 <- 2
lambda  <- 1

while(abs(lambda - lambda0) > 0.0001){
  lambda0 <- lambda
  iter    <- optimize(EmFunc, lambda0 = lambda0, c(0,4), maximum = TRUE)
  lambda  <- iter$maximum
}

> iter
$maximum
[1] 1.593573

$objective
[1] -10.68045

Tapi ini masalah sederhana; mari kita maksimalkan tanpa iterasi:

MaxFunc <- function(lambda){
  -lambda * (10 + 10 / (exp(lambda) - 1)) + 20 * log(lambda)
}

optimize(MaxFunc, c(0,4), maximum = TRUE)
$maximum
[1] 2.393027

$objective
[1] -8.884968

Nilai fungsi lebih tinggi daripada dalam prosedur yang tidak iteratif dan hasilnya tidak konsisten dengan metodologi lain. Mengapa prosedur kedua memberikan jawaban yang berbeda dan (saya kira) salah?

Charlie
sumber

Jawaban:

6

xsaya=0yQy λ-1λ-1

QλyyQf(λ)=Q(λ,λ)

f(λ)f

jayk
sumber