Thanks Jim, I corrected the error by avoiding negative K values: k1=abs(mu1/((var1/mu1)-1)) k2=abs(mu2/((var2/mu2)-1))
I am not sure about the general code to determine the parameters though, sometimes it gives the expected values (determined in advance by rnbinom) and sometimes it's way off. jholtman wrote: > > Your problems is that your code is generating NaN and 'err' is set to > NaN and therefore the 'while (err > eps)' fails since NaN is not a > logical variable. > You should learn to use debug or the browser. I put the following > statement in your code: > > new.parms=c(k1,mu1,k2,mu2,prob) > err=max(abs((old.parms-new.parms)/new.parms)) > if (is.nan(err)) browser() # added statement > iter=iter+1 > } > > that caught the error and the printed out the values of some of your > objects: > Called from: mixnbinom(y, 10, 7, 20, 12, 0.8) > Browse[1]> old.parms > [1] 8.233552e+00 5.225557e+00 -2.487524e+05 1.512247e+01 9.668136e-01 > Warning message: > In dnbinom(x, size, prob, log) : NaNs produced > Browse[1]> new.parms > [1] NaN NaN NaN NaN NaN > Browse[1]> > This shows that 'new.parms' at that point was all NaN. You need to > check your logic since is does say that "In dnbinom(x, size, prob, > log) : NaNs produced". > -- View this message in context: http://www.nabble.com/How-to-avoid-the-NaN-errors-in-dnbinom--tf4680211.html#a13383142 Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list 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.