[R] NLS error message...

Douglas Bates bates at stat.wisc.edu
Wed Jan 14 23:33:39 CET 2004


Bernardo Rangel Tura <tura at centroin.com.br> writes:

> I have a problem with nls() and my research data. Look this example:
> 
> X2000<-c(1.205268,2.850695,5.100860,8.571610,15.324513,25.468599,39.623418,61.798856,91.470006,175.152509)
> age<-c(37,42,47,52,57,62,67,72,77,82)
> fit <- nls(X2000~R*exp(A*age),start=list(R=.1,A=.1))
> 
> Error mensage:
> 
> Error in nls(X2000 ~ R * exp(A * age), start = list(R = 0.1, A = 0.1)) : 
>         singular gradient
> In addition: Warning message: 
> no finite arguments to min; returning Inf
> 
> How I fix this problem? Other command? 

The problem is your starting value for R.  This is a case where the
"plinear" algorithm is very helpful because you only need a starting
estimate for A, the nonlinear parameter.

> fm1 = nls(X2000 ~ exp(A*age), start = c(A = .1), alg = 'plinear', trace = TRUE)
172.7589 : 0.10000000 0.04645409 
161.7483 : 0.10315347 0.03619599 
161.6661 : 0.10343465 0.03539847 
161.6656 : 0.10345546 0.03534014 
161.6656 : 0.10345698 0.03533590 
161.6656 : 0.10345709 0.03533559 
> summary(fm1)

Formula: X2000 ~ exp(A * age)

Parameters:
     Estimate Std. Error t value Pr(>|t|)    
A    0.103457   0.004578  22.598 1.56e-08 ***
.lin 0.035336   0.012841   2.752    0.025 *  
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 

Residual standard error: 4.495 on 8 degrees of freedom

Correlation of Parameter Estimates:
           A
.lin -0.9983

Notice that you have extremely high correlation of these parameter
estimates.  Also it is unlikely that you will have homoscedastic
(i.e. same variance) errors on those observations so you may want to
consider fitting log(X2000) to age, which would be a linear model.




More information about the R-help mailing list