[R] nls - convergence problem

Douglas Bates bates at wisc.edu
Fri Jan 7 17:22:36 CET 2005


peter.schlattmann at t-online.de wrote:
> Dear list,
> 
> I do have a problem with nls. I use the following data:
> 
> 
>>test
> 
>     time  conc dose
>    0.50  5.40    1
>    0.75 11.10    1
>    1.00  8.40    1
>    1.25 13.80    1
>    1.50 15.50    1
>    1.75 18.00    1
>    2.00 17.00    1
>    2.50 13.90    1
>    3.00 11.20    1
>   3.50  9.90    1
>   4.00  4.70    1
>   5.00  5.00    1
>   6.00  1.90    1
>   7.00  1.90    1
>   9.00  1.10    1
> 12.00  0.95    1
> 14.00  0.46    1
> 24.00    NA    1
> 30.00    NA    1
> 36.00    NA    1
> 
> I use the self-starting function SSfol:
> 
> nls(conc~SSfol(dose,time,lKe,lKa,lCl),data=test,trace=T,control=nls.control(maxiter=13,tol=0.001,minFactor=1.E-500),na.action=na.omit)
> 
> This gives the following output:
> 
> 99.15824 :  -1.2061792  0.1296157 -4.3020997 
> 86.07567 :  -0.7053265 -0.3873204 -4.1278009 
> 85.19743 :  -0.5548499 -0.5333776 -4.1173627 
> 85.19246 :  -0.5466376 -0.5415731 -4.1173247 
> 85.1922 :  -0.5444637 -0.5437461 -4.1173223 
> 85.1922 :  -0.5442240 -0.5439857 -4.1173223 
> 85.1922 :  -0.5441337 -0.5440760 -4.1173223 
> 85.1922 :  -0.5441104 -0.5440993 -4.1173223 
> 85.1922 :  -0.5440984 -0.5441113 -4.1173223 
> 85.1922 :  -0.5441089 -0.5441008 -4.1173223 
> 85.1922 :  -0.5441006 -0.5441091 -4.1173223 
> 85.1922 :  -0.5441051 -0.5441046 -4.1173223 
> 85.1922 :  -0.5441051 -0.5441046 -4.1173223 
> 85.1922 :  -0.5441051 -0.5441046 -4.1173223 
> 
> Error in nls(conc ~ SSfol(dose, time, lKe, lKa, lCl), data = test, trace
> = T,  : 
>         number of iterations exceeded maximum of 13
> 
> I do not understand this error message for two reasons:
> 
> 1. Apparently the algorithm has converged, at the end of the output the
> change of parameter estimates seems to be less than 0.001
> 
> 
> 2. If the maximum number of iterations is reached I would expect a
> warning in the case that the algortihm did not converge. However, here
> the algorithm apparently has converged. Thus I do not understand what
> happened.

But it hasn't converged.  The nls function uses a relative offset 
convergence criterion that is not being satisfied here.  By setting the 
minimum step factor to a very small number you are more small steps than 
you would otherwise but you are not converging.  It appears that the 
parameter estimates are not defined for this model/data set combination.




More information about the R-help mailing list