Як ви використовуєте алгоритм ЕМ для обчислення MLE для латентної змінної рецептури нульової надутої моделі Пуассона?


10

Нульова завищені Пуассона моделі регресії визначається для зразка по і далі передбачається, що параметри та задовольняютьY i = { 0 з вірогідністю p i + ( 1 - p i ) e - λ i k з вірогідністю ( 1 - p i ) e - λ i λ k i / k ! λ = ( λ 1 , , λ n ) p =(y1,,yn)

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

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

Відповідна ймовірність реєстрації нульової завищеної регресії моделі Пуассона -

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

Тут і - матриці проектування. Ці матриці можуть бути однаковими, залежно від особливостей, які бажає використовувати для двох генеруючих процесів. Однак у них однакова кількість рядків.BG

Якщо припустити, що ми могли спостерігати Zi=1 коли Yi - з ідеального, нульового стану, а Zi=0 коли Yi - зі стану Пуассона, то ймовірність лога була б

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=0 від zi=1 . Другий термін - це регресія до точок, породжених процесом Пуассона.

Але хіба латентні змінні не помітні? Мета - максимізувати перші ймовірності журналу. Але ми маємо ввести приховані змінні та отримати нову ймовірність ймовірності. Тоді, використовуючи алгоритм ЕМ, ми максимізуємо ймовірність другого журналу. Але це передбачає, що ми знаємо, що або або ?Z i = 1Zi=0Zi=1


Що таке ? Також великі частини цього питання, як видається, значною мірою вирізані та вставлені з попереднього, іншого питання від @Robby. Це ти? f
Макрос

@Macro: Макрос так, це я. Я не впевнений, що таке . Папір ніколи не говорив. f
Демієн

Відповіді:


11

Корінь труднощів, які виникають у вас, полягає у реченні:

Тоді, використовуючи алгоритм ЕМ, ми максимізуємо ймовірність другого журналу.

Як ви зауважили, ви не можете. Натомість, ви максимально збільшуєте очікуване значення ймовірності другого журналу (відомого як "ймовірність повного журналу даних"), де очікуване значення приймається за . zi

Це призводить до ітеративної процедури, де при ітерації ви обчислюєте очікувані значення урахуванням оцінок параметра з ітерації ( (це відоме як "Е-крок" ",) замініть їх на повний вірогідність журналу даних (див. EDIT нижче, чому ми можемо це зробити в цьому випадку), і максимізуйте це щодо параметрів, щоб отримати оцінки для поточної ітерації (" М-крок " .)kthzi(k1)th

Вірогідність журналу повних даних для нульового завищеного Пуассона в найпростішому випадку - два параметри, скажімо і - дозволяє істотно спростити, коли мова йде про М-крок, і це певною мірою переходить у вашу форму. Я покажу вам, як це працює в простому випадку через якийсь код R, щоб ви могли побачити суть цього. Я не буду максимально спрощувати, оскільки це може призвести до втрати ясності, коли ви думаєте про свою проблему:λ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))

стосовно вектора коефіцієнтів вашої матриці щоб отримати оцінки . Очікувані значення , знову обчислюються при кожній ітерації.p i E z i = p i / ( p i + ( 1 - p i ) exp ( - λ i ) )GpiEzi=pi/(pi+(1pi)exp(λi))

Якщо ви хочете зробити це для реальних даних, на відміну від просто розуміння алгоритму, пакети R вже існують; ось приклад http://www.ats.ucla.edu/stat/r/dae/zipoisson.htm за допомогою psclбібліотеки.

EDIT: Я повинен підкреслити, що те, що ми робимо, - це максимізація очікуваного значення ймовірності журналу повних даних, НЕ максимізація ймовірності журналу повних даних із очікуваними значеннями відсутніх змінних даних / латентних змінних. Як це трапляється, якщо вірогідність журналу повних даних лінійна у відсутніх даних, як і тут, два підходи однакові, але в іншому випадку вони не є.


@Cokes, ви повинні додавати цю інформацію як свою власну додаткову відповідь, а не змінювати існуючу відповідь. Цю редакцію не слід було схвалити.
gung - Відновити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.