[R] NaN Log-lik value in EM algorithm (fitting Gamma mixture model)

Aanchal Sharma aanchalsharma833 at gmail.com
Fri Sep 16 00:04:18 CEST 2016

I am using a function gammamixEM where it does it by default. I do not have
the option to change it.
Conceptually, what can make the algorithm not able to calculate likelihood
value at all (and hence log-lik=Nan)? Is there sth wrong with the data?
Under what conditions does it happen?

On Wed, Sep 14, 2016 at 8:04 PM, Duncan Murdoch <murdoch.duncan at gmail.com>

> On 14/09/2016 4:46 PM, Aanchal Sharma wrote:
>> Hi,
>> I am trying to fit Gamma mixture model to my data (residual values
>> obtained
>> after fitting Generalized linear Model) using gammamixEM. It is part of
>> the
>> script which does it for multiple datasets in loop. The code is running
>> fine for some datasets but it terminates for some giving following error:
>> " iteration = 1  log-lik diff = NaN  log-lik = NaN
>> Error in while (diff > epsilon && iter < maxit) { :
>>   missing value where TRUE/FALSE needed"
>> Seems like EM is not able to calculate log-lik value (NaN) at the first
>> iteration itself. any idea why that can happen?
>> It works fine for the other genes in the loop. Tried looking for
>> difference
>> in the inputs, but could not come up with anything striking.
> THere are lots of ways to get NaN in numerical calculations.   A common
> one if you are using log() to calculate log likelihoods is that rounding
> error gives you a negative likelihood, and then log(lik) comes out to NaN.
> You just need to look really closely at each step of your calculations.
> Avoid using log(); use the functions that build it in (e.g. instead of
> log(dnorm(x)), use dnorm(x, log = TRUE)).
> Duncan Murdoch

Anchal Sharma, PhD
Postdoctoral Fellow
195, Little Albany street,
Cancer Institute of New Jersey
Rutgers University

	[[alternative HTML version deleted]]

More information about the R-help mailing list