I'm using the function nlminb to maximise a function and got convergence (convergence =0 ) with the message false-convergence.
I tried the documentation but no answer. I tried to get the port documentation on the function and could find the function
This is a repost/adaptation of an answer of mine from r-sig-mixed models
[... The nlminb() optimizer ... is based on the PORT libraries.
The docs linked from
?nlminb used to be at
http://netlib.bell-labs.com/cm/cs/cstr/153.pdf: http://www.netlib.org/port/cs/cstr says
port/readme points to "Usage Summary for Selected Optimization Routines", sometimes known as PORT OPTIMIZATION DOCUMENTATION in http://netlib.bell-labs.com/cm/cs/cstr/153.ps.gz or http://netlib.bell-labs.com/cm/cs/cstr/153.pdf
... but these links are broken (
port/readme is still there but none of the links provided work ...).
The only useful material I could find in these docs was:
p. 5: false convergence: the gradient ∇f(x) may be computed incorrectly, the other stopping tolerances may be too tight, or either f or ∇f may be discontinuous near the current iterate x.
p. 9: V(XFTOL) — V(34) is the false-convergence tolerance. A return with IV(1) = 8 occurs if a more favorable stopping test is not satisfied and if a step of scaled length at most V(XFTOL) is tried but not accepted. ‘‘Scaled length’’ is in the sense of (5.1). Such a return generally means there is an error in computing ∇f(x), or the favorable convergence tolerances (V(RFCTOL), V(XCTOL), and perhaps V(AFCTOL)) are too tight for the accuracy to which f(x) is computed (see §9), or ∇f (or f itself) is discontinuous near x . An error in computing ∇f(x) usually leads to false convergence after only a few iterations — often in the first. Default = 100*MACHEP.
p. 13: Sometimes evaluating f(x) involves an extensive computation, such as performing a simulation or adaptive numerical quadrature or integrating an ordinary or partial differential equation. In such cases the value computed for f (x), say f̃( x ), may involve substantial error (in the eyes of the optimization algorithm). To eliminate some ‘‘false convergence’’ messages and useless function evaluations, it is necessary to increase the stopping tolerances and, when finite-difference derivative approximations are used, to increase the step-sizes used in estimating derivatives.