[R] Error 'singular gradient' in nonlinear model fitting

Peter Dalgaard p.dalgaard at biostat.ku.dk
Fri Feb 15 18:49:38 CET 2008


HongSheng Liao wrote:
> w.age.female.2004 <- nls(WEIGHT ~ (alpha*TOTAL^beta)/454,
>                         start=list(alpha=1, beta=3),
>                         data=spottedseatrout2004.female.data)
>
> I am trying to fit above model to length-weight data of a fish species
> (spotted seatrout) by year (1999-2006).  The convergence occurred for all
> the years except 2002 and 2004.  In these two year, R shows the error
> called 'singular gradient' in the model.  Could anyone please help me to
> fix the error?  I don't think there are any problems with my data because I
> can fit the same model to 2004 data without any problems using SAS.  Thank
> you very much in advance.
>   
If your starting values are poor, it can be a toss-up whether nls() 
converges or not. One idea is to try the PORT algorithm, another is to 
get better starting values from
 
cf <- coef(lm(log(WEIGHT*454)~log(TOTAL)))
start = list(alpha=exp(cf[1]), beta=cf[2])
> Hongsheng (Hank) Liao, Ph.D.
> Lab Manager
> Center for Quantitative Fisheries Ecology
> 800 West 46th Street
> Old Dominion University
> Norfolk, Virginia 23508
> Phone:757.683.4571
> Fax:757.683.5293
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>   


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-help mailing list