[R] error using nls with logistic derivative

Francisco Mora Ardila fmora at oikos.unam.mx
Tue Apr 17 06:23:07 CEST 2012


Hi

I´m trying to fit a nonlinear model to a derivative of the logistic function

y = a/(1+exp((b-x)/c)) (this is the parametrization for the SSlogis function with nls)

The derivative calculated with D function is:

> logis<- expression(a/(1+exp((b-x)/c)))
> D(logis, "x")
a * (exp((b - x)/c) * (1/c))/(1 + exp((b - x)/c))^2

So I enter this expression in the nls function:

ratelogis <- nls(Y ~ a*(exp((b-X)/c)*(1/c))/(1 + exp((b-X)/c))^2,
start=list(a = 21.16322, b = 8.83669, c = 2.957765),
)

The data is:

> Y
 [1]  5.5199668  1.5234525  3.3557000  6.7211704  7.4237955  1.9703127
 [7]  4.3939336 -1.4380091  3.2650180  3.5760906  0.2947972  1.0569417
> X
 [1]   1   0   0   4   3   5  12  10  12 100 100 100

The problem is that I got the next error:

Error en nls(Y ~ a * (exp((b - X)/c) * (1/c))/(1 + exp((b - X)/c))^2,  : 
  step factor 0.000488281 reduced below 'minFactor' of 0.000976563

I trien to change the minFactor using the control argument inside nls

control=nls.control(maxiter=50, tol=1e-5, minFactor = 1/2048

but got a new error message:


Error en nls(Y ~ a * (exp((b - X)/c) * (1/c))/(1 + exp((b - X)/c))^2,  : 
  step factor 0.000244141 reduced below 'minFactor' of 0.000488281

So it seems that as I modify minFactor, the step factor reduces also and I can never 
reach a solution.

Does anybody Know what am I doing wrong? Is there a problem with the formula? How can I 
solve it? I tried some suggestions on R-help related topics but did not work.

Thanks

Francisco


----------------------
Francisco Mora Ardila
Estudiante de Doctorado
Centro de Investigaciones en Ecosistemas
Universidad Nacional Autónoma de México



More information about the R-help mailing list