[R] nls - convergence problem
Spencer Graves
spencer.graves at pdf.com
Fri Jan 7 20:17:32 CET 2005
Hi, Doug:
How would you diagnose something like this? For example, might
the following (from ?nlsModel) help:
DNase1 <- DNase[ DNase$Run == 1, ]
mod <-
nlsModel(density ~ SSlogis( log(conc), Asym, xmid, scal ),
DNase1, start=list( Asym = 3, xmid = 0, scal = 1 ))
mod$Rmat() # R matrix from the QR decomposition of the gradient
Wouldn't the first zero or nearly diagonal element of Rmat
identify a variable to which the model was insensitive and could
therefore be fixed or removed from the model?
Thanks,
Spencer Graves
Douglas Bates wrote:
> 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.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list