An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-sig-mixed-models/attachments/20090506/a3b01442/attachment.pl>
NLMINB() produces NaN!
3 messages · H c, Ravi Varadhan, Ken Beath
Hi, Can you provide a little more information about your problem? If you are trying to find a local maximum of "maxphi", then you need to tell that to optim(),. It tries to find a local minimum by default. You can do this via the `fnscale' control parameter (control = list(fnscale = -1)). If this still does not work, try the function spg() in the "BB" package. Ravi. ---------------------------------------------------------------------------- ------- Ravi Varadhan, Ph.D. Assistant Professor, The Center on Aging and Health Division of Geriatric Medicine and Gerontology Johns Hopkins University Ph: (410) 502-2619 Fax: (410) 614-9625 Email: rvaradhan at jhmi.edu Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html ---------------------------------------------------------------------------- -------- -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of H c Sent: Wednesday, May 06, 2009 2:19 PM To: r-sig-mixed-models at r-project.org; r-help at r-project.org Subject: [R] NLMINB() produces NaN! I am having the same problem as one Rebecca Sela(see bellow).
On 21/12/2007 12:07 AM, Rebecca Sela wrote:
* I am trying to optimize a likelihood function using NLMINB. After running without a problem for quite a few iterations (enough that my intermediate output extends further than I can scroll back), it tries a vector of parameter values NaN. This has happened with multiple Monte Carlo datasets, and a few different (but very similar) likelihood functions. (They are complicated, but I can send them to someone if desired.)*
Instead I try to use optim() for my optimization needs but it fails when finding the 0/0: " Error in optim(c(phi[, k]), maxphi, lower = 0.01, upper = 0.99, method = "L-BFGS-B") : L-BFGS-B needs finite values of 'fn' In addition: There were 50 or more warnings (use warnings() to see the first 50) " Any suggestions? Harlan Campbell McGIll University ______________________________________________ R-help at 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.
On Wed, May 6, 2009 6:19 pm, H c wrote:
I am having the same problem as one Rebecca Sela(see bellow). On 21/12/2007 12:07 AM, Rebecca Sela wrote:
* I am trying to optimize a likelihood function using NLMINB. After running without a problem for quite a few iterations (enough that my intermediate output extends further than I can scroll back), it tries a vector of parameter values NaN. This has happened with multiple Monte Carlo datasets, and a few different (but very similar) likelihood functions. (They are complicated, but I can send them to someone if desired.)*
Instead I try to use optim() for my optimization needs but it fails when finding the 0/0: " Error in optim(c(phi[, k]), maxphi, lower = 0.01, upper = 0.99, method = "L-BFGS-B") : L-BFGS-B needs finite values of 'fn' In addition: There were 50 or more warnings (use warnings() to see the first 50) " Any suggestions?
I think you have a different problem to the original poster. It looks like your function cannot be calculated for some values that optim passes to it. This can easily happen. Some optimisers (eg nlm) seem to cope with this, but produce lots of annoying warnings. My solution is to check at the end of the likelihood function for finite or NAN and replace with the maximum real value. eg if (is.nan(ll) || is.infinite(ll)) ll <- .Machine$double.xmax Ken