# EM algorithm for zero truncated poisson

I find it very difficult to understand the E-step of EM algorithm in zero-truncated poisson example. Can someone explain me (mathematically) how exactly do we estimate the number of our "missing" zero values and how does the log-likelihood changes?

• Consider accepting the provided answer or is there still a problem left? Commented Mar 1, 2020 at 21:14
• Answer accepted Commented Mar 4, 2020 at 21:15

To clear up a common confusion about the EM algorithm - one which is perpetuated by examples such as the Poisson - we calculate the expected value of the log likelihood function for the observations with missing values, and only sometimes are we able to do so by calculating the expected value of the "missing information".

To see how this works in the zero-inflated Poisson case, let's write out the complete-data log likelihood function:

$$l(\lambda|x) = \lambda \sum x - n\lambda$$

Now with $$n$$ observed values and $$m$$ ($$m$$ not actually known) missing zeroes, we have instead:

$$l(\lambda|x) = \lambda\sum x -n\lambda - m\lambda$$

At the E-step, we want to calculate the expected value of this expression conditional upon the current values of $$\lambda$$ and $$m$$, label them $$\lambda_k$$ and $$m_k$$ (assuming we are on iteration $$k+1$$ of our algorithm.) Since the only unknown here is $$m$$, and the log likelihood is linear in $$m$$, its expectation can be found by calculating the expectation of $$m$$ and plugging it in to the above equation. However, our ability to perform this plug-in calculation depends crucially on the fact that $$l(\lambda|x)$$ is linear in $$m$$. Our real goal is to calculate the expected value of $$l(\lambda|x)$$.

The relevant calculation is:

$$m_{k+1} = {ne^{-\lambda_k} \over 1-e^{-\lambda_k}}$$

This comes from the fact that $$E(m)/n = p(0)/(1-p(0))$$. If our current estimate of $$\lambda$$ is such that we expect to see, let us say, 10% of the data equal to zero, and we observe 90 non-zero data points, then we expect to see 10 data points equal to zero, and this will be our estimate of $$m$$.

This leads immediately to the M-step calculation:

$$\lambda_{k+1} = {\sum x \over n+m_{k+1}}$$

• Thanks for the answer.$m_{k+1} = {ne^{-\lambda_k} \over 1-e^{-\lambda_k}}$. This is the expected value of a zero truncated poisson multiplied by n. Why is this the expected value of m? Also aren't we supposed to set starting values for m?where is that part? @jbowman Commented Feb 5, 2019 at 6:07
• I have read about the E-step that $m_{k+1} = (m^\ast+n) e^{-\lambda}$ for $m^\ast$an initial value of m but I really do not understand why Commented Feb 5, 2019 at 6:29
• I've updated the answer in response to your first comment. With respect to your second comment, that can't possibly be right, as there's no update for $\lambda$, among other things. Any initial value, e.g., $0$, will work for $m$ in this case. Commented Feb 5, 2019 at 19:50