Skip to content

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:
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 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