Como você usa o algoritmo EM para calcular MLEs para uma formulação de variável latente de um modelo de Poisson inflado com zero?


10

O modelo de regressão de Poisson inflado com zero é definido para uma amostra por e assume ainda que os parâmetros e atendem(y1,…,yn)

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

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

A probabilidade de log correspondente do modelo de regressão de Poisson inflado a zero é

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

Aqui, e são as matrizes de design. Essas matrizes podem ser as mesmas, dependendo dos recursos que se deseja usar para os dois processos geradores. Eles têm o mesmo número de linhas, no entanto.BG

Supondo que pudéssemos observar quando é do estado perfeito, zero e quando é do estado de Poisson, a probabilidade de log seriaZi=1YiZi=0Yi

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

=∑i=1nzi(Giγ−log⁡(1+eGiγ))+−∑i=1n(1−zi)log⁡(1+eGiγ)+∑i=1n(1−zi)[yiBiβ−eBiβ−log⁡(yi!)]
Os dois primeiros termos são a perda em uma regressão logística para separar de . O segundo termo é uma regressão aos pontos gerados pelo processo de Poisson.zi=0zi=1

Mas as variáveis ​​latentes não são observáveis? O objetivo é maximizar a primeira probabilidade de log. Mas temos que introduzir variáveis ​​latentes e derivar uma nova probabilidade de log. Em seguida, usando o algoritmo EM, podemos maximizar a segunda probabilidade de log. Mas isso pressupõe que sabemos que ou ?Zi=0Zi=1


O que é ? Além disso, grande parte dessa questão parece ser amplamente recortada e colada de uma pergunta anterior diferente do @Robby. Isso é você? f
— Macro

@ Macro: Macro sim, sou eu. Não tenho certeza do que é . O jornal nunca disse. f
— Damien

Respostas:


11

A raiz da dificuldade que você está tendo está na frase:

Em seguida, usando o algoritmo EM, podemos maximizar a segunda probabilidade de log.

Como você observou, você não pode. Em vez disso, o que você maximiza é o valor esperado da segunda probabilidade de log (conhecida como "probabilidade completa do log de dados"), em que o valor esperado é assumido sobre o . zi

Isso leva a um procedimento iterativo, onde na iteração você calcula os valores esperados de considerando as estimativas de parâmetro da iteração ( (conhecida como "E-step ",) substitua-os na probabilidade completa do log de dados (consulte EDIT abaixo para saber por que podemos fazer isso neste caso) e maximize isso em relação aos parâmetros para obter as estimativas para a iteração atual (a" etapa M " .)kthzi(k−1)th

O log probabilidade-de dados completa para o Poisson zero inflado no caso mais simples - dois parâmetros, dizer e - permite simplificar de forma significativa quando se trata de o M-passo, e isso leva por cima de alguma forma ao seu formulário. Vou mostrar como isso funciona no caso simples, através de um código R, para que você possa ver a essência dele. Não simplificarei o máximo possível, pois isso pode causar uma perda de clareza quando você pensa no seu problema:λ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 

No seu caso, em cada etapa, você fará uma regressão de Poisson ponderada em que os pesos devem 1-zhatobter as estimativas de e, portanto, e, em seguida, maximizar:βλi

∑(Ezilog⁡pi+(1−Ezi)log⁡(1−pi))

com relação ao vetor de coeficiente da sua matriz para obter as estimativas de . Os valores esperados , calculados novamente a cada iteração.GpiEzi=pi/(pi+(1−pi)exp⁡(−λi))

Se você deseja fazer isso com dados reais, em vez de apenas entender o algoritmo, já existem pacotes R; aqui está um exemplo http://www.ats.ucla.edu/stat/r/dae/zipoisson.htm usando a psclbiblioteca.

EDIT: Devo enfatizar que o que estamos fazendo é maximizar o valor esperado da probabilidade do log de dados completos, NÃO maximizar a probabilidade do log de dados completos com os valores esperados dos dados ausentes / variáveis ​​latentes plugados. Como acontece, se a probabilidade do log de dados completos é linear nos dados ausentes, como aqui, as duas abordagens são iguais, mas, caso contrário, não são.


@Cokes, você deve adicionar essas informações como sua própria resposta suplementar, não alterar uma resposta existente. Esta edição não deveria ter sido aprovada.
— gung - Reintegrar Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.