EM Algorithm for Mixture Model

We can generate a population for a binomial mixture under the following assumptions: That we have a number n of true cases out of a possible number N total, and that these have a binomial distribution with πi probability of being from each distribution.

This is easier to visualize with a ‘coins in a pot’ example. Say we have a pot filled with two types of coins, each type of coin having its own probability of heads. We pull a number of coins S from the pot, flip each coin N times and record the number of n heads. Under these assumptions, the probability of seeing n heads for each coin would be:

P(n|N,Θ)=π1Binom(n|N,θ1)+π2Binom(n|N,θ2)

or more generally for K different types of coins

P(n|N,Θ)=k=1KπkBinom(n|N,θk)

where θk is the probability of heads for each type of coin. Therefor the log-likelihood for our parameters is:

L(Θ|X,Z)=lnP(X,Z|Θ)

Where Θk represents the set of πk,θk, X represents the set of heads and total coin flips, and Z represents the set of coin proportions and heads proportions. So the Auxiliary Function is:

Q(Θ,Θo)=E[lnL(Θ|X,Z)|X,Θo]

and our expectation is:

E[lnP(X,Z,|Θ)|X,Θo]=zi=1KlnP(ni,zi|Θ)P(zi|ni,Θo)

where

P(zi=k|ni,Θo)=P(zi=k,ni|Θo)P(zi,ni|Θo)=πk,oBinom(ni|Ni,θk,o)l=1Kπl,oBinom(ni|Ni,θl,o)

We can then use the following expressions to update π and θ until convergence.

πm=1Si=1SP(zi=m|ni,Θo) θm,S=i=1SniP(zi=m|ni,Θo)j=1SNjP(zj=m|nj,Θo)
Ian Arriaga-MacKenzie
Ian Arriaga-MacKenzie
Statistics and Computational Mathematics

My interests include optimization, algorithm design, and efficient experiment implementation.