Hello John,

Thank you so much for your valuable response. I think using several new 
optimization function (e.g., Rvmmin) would be a good option for me. I will dive 
into those function. Thank you again!

Best,
Hwanggyu

-----Original Message-----
From: J C Nash <profjcn...@gmail.com>
Sent: Friday, April 3, 2020 9:49 AM
To: Ivan Krylov <krylov.r...@gmail.com>; Lim, Hwanggyu <h...@gmac.com>
Cc: r-help@r-project.org
Subject: Re: [R] Question about nlminb function

This thread points out the important and often overlooked difference between 
"convergence" of an algorithm and "termination"
of a program. I've been pushing this button for over 30 years, and I suspect 
that it will continue to come up from time to time.

Sometimes it is helpful to put termination criteria actually into the user 
function. Alternatively try a different optimizer. The optimx package wraps 
several, including a few for bounds constrained optimization.
Note that a new version will go up once revdeps have been checked. Dylan 
Beijers noted a minor glitch if users want to "maximize".

If the termination criteria are really critical, some of the methods now merged 
into optimx (Rvmmin, Rcgmin, Rtnmin) are all in R. I won't pretend that diving 
in and making changes is easy, though I've tried to move the code more and more 
to maintainability and transparency. If anyone is interested in pursuing that 
sort of thing, I'll be willing to advise or help as long as the requests aren't 
too strident.

For information, while all-R programs used to be much slower than those in 
Fortran or C or C++, users should time their problems rather than just assume a 
great penalty for running things completely in R. The human time saving is 
generally more important.

Best, John Nash


On 2020-04-03 5:24 a.m., Ivan Krylov wrote:
> On Thu, 2 Apr 2020 10:26:07 +0000
> "Lim, Hwanggyu" <h...@gmac.com> wrote:
>
>> when n-1th estimates and nth estimates have absolute differences less
>> than 0.001 for all three parameters, the iteration must stop
>
>> I am using nlminb optimization function
>
> nlminb function uses the PORT library. According to [1], the closest
> thing PORT has to what you want is the notion of X-convergence,
> namely, stopping when max(scale * abs(x - xstar))/max(scale * abs(x +
> xstar)) is considered to be below control$x.tol (with xstar being
> supposed local minimiser and scale being all ones by default). Using
> it as an absolute stopping criterion in x requires knowledge of at
> least order of magnitude of xstar, though, so it might not be feasible.
>
> Note that ?nlminb says in the description that it is there "for
> historical compatibility."
>
> The nloptr package offers an xtol_abs option [2] that results in the
> behaviour you want.
>
The information in this transmission is confidential and intended only for the 
recipient listed above. If you are not the intended recipient, please advise 
the sender immediately by reply e-mail and delete this message and any 
attachments without retaining a copy. If you are not the intended recipient, 
you are hereby notified that any disclosure, copying or distribution of this 
message, or the taking of any action based upon it, is strictly prohibited.
______________________________________________
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