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

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to