0

Typically, the re-estimation iterative procedure stops when lambda.bar - lambda is less than some epsilon value.

How exactly does one determine this epsilon value? I often only see is written as the general epsilon symbol in papers, and never the actual value used, which I assume would change depending on the data.

So, for instance, if the lambda value of my first iteration was 5*10^-22, second iteration was 1.3*10^-15, third was 8.45*10^-15, fourth was 1.65*10^-14, etc., how would I determine when the algorithm needed no more iteratons?

Moreover, what if I were to apply the same alogrithm to a different datset? would I need to change my epsilon definitions?

Sorry for the long question. Pretty puzzled by it... :)

Alex Riley
  • 169,130
  • 45
  • 262
  • 238

2 Answers2

0

"how would I determine when the algorithm needed no more iteratons?"

When you get a "good-enough" result within a reasonable amount of time. ;-)

"Moreover, what if I were to apply the same alogrithm to a different datset? would I need to change my epsilon definitions?"

Yes, most probably.

Alptigin Jalayr
  • 719
  • 4
  • 12
  • If your second answer is the only option, then it would be difficult to implement EM computationally and automatically right? So I would suppose there was a better solution than needing to tailor it for each input. What if someone were working with 1000 different sets of information (say protein sequences) and they wanted to find the MLEs for the general population of proteins. They would take log(lambda)1+...+log(lamba)N for the number (N) of proteins to determine final lambda representing the whole population for each iteration. So how to determine lambda for each protein automatically? –  May 10 '13 at 18:06
0

If you can afford it, you can just let it iterate until the updated value <= the old value (it could be < due to floating point error). I would be inclined to go with this until I ran out of patience or cpu budget.

mcdowella
  • 19,301
  • 2
  • 19
  • 25