From: Milton Cezar Ribeiro <milton_ruser_at_yahoo.com.br>

Date: Sun, 2 Dec 2007 17:16:09 -0800 (PST)

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. Received on Mon 03 Dec 2007 - 01:20:39 GMT

Date: Sun, 2 Dec 2007 17:16:09 -0800 (PST)

Dear Joerg van den Hoff,

I tryed your suggestion and got the following error:

> nls(y~B*x^A + C, start = c(A=3.2, B=0.002, C=0))

Error in nls(y ~ B * x^A + C, start = c(A = 3.2, B = 0.002, C = 0)) :
singular gradient

*>
*

> sessionInfo()

R version 2.6.0 (2007-10-03)

i386-pc-mingw32

locale:

LC_COLLATE=English_Jamaica.1252;LC_CTYPE=English_Jamaica.1252;LC_MONETARY=English_Jamaica.1252;LC_NUMERIC=C;LC_TIME=English_Jamaica.1252
attached base packages:

[1] stats graphics grDevices utils datasets methods base

Any idea?

miltinho

- Mensagem original ---- De: Joerg van den Hoff <j.van_den_hoff_at_fzd.de> Para: Milton Cezar Ribeiro <milton_ruser_at_yahoo.com.br> Cc: R-help <r-help_at_stat.math.ethz.ch> Enviadas: Domingo, 2 de Dezembro de 2007 17:26:23 Assunto: Re: [R] fitting "power model" in nls()

On Sun, Dec 02, 2007 at 11:08:01AM -0800, Milton Cezar Ribeiro wrote:

> Dear all,

*> I am still fighting against my "power model".
**> I tryed several times to use nls() but I can??t run it.
**> I am sending my variables and also the model which I would like to fit.
**> As you can see, this "power model" is not the best model to be fit, but I really need also to fit it.
**>
**> The model which I would like to fit is Richness = B*(Area^A)
**>
**> richness<-c(44,36,31,39,38,26,37,33,34,48,25,22,44,5,9,13,17,15,21,10,16,22,13,20,9,15,14,21,23,23,32,29,20,
**> 26,31,4,20,25,24,32,23,33,34,23,28,30,10,29,40,10,8,12,13,14,56,47,44,37,27,17,32,31,26,23,31,34,
**> 37,32,26,37,28,38,35,27,34,35,32,27,22,23,13,28,13,22,45,33,46,37,21,28,38,21,18,21,18,24,18,23,22,
**> 38,40,52,31,38,15,21)
**> area<-c(26.22,20.45,128.68,117.24,19.61,295.21,31.83,30.36,13.57,60.47,205.30,40.21,
**> 7.99,1.18,5.40,13.37,4.51,36.61,7.56,10.30,7.29,9.54,6.93,12.60,
**> 2.43,18.89,15.03,14.49,28.46,36.03,38.52,45.16,58.27,67.13,92.33,1.17,
**> 29.52,84.38,87.57,109.08,72.28,66.15,142.27,76.41,105.76,73.47,1.71,305.75,
**> 325.78,3.71,6.48,19.26,3.69,6.27,1689.67,95.23,13.47,8.60,96.00,436.97,
**> 472.78,441.01,467.24,1169.11,1309.10,1905.16,135.92,438.25,526.68,88.88,31.43,21.22,
**> 640.88,14.09,28.91,103.38,178.99,120.76,161.15,137.38,158.31,179.36,214.36,187.05,
**> 140.92,258.42,85.86,47.70,44.09,18.04,127.84,1694.32,34.27,75.19,54.39,79.88,
**> 63.84,82.24,88.23,202.66,148.93,641.76,20.45,145.31,27.52,30.70)
**> plot(richness~area)
**>
**> I tryed to fit the following model:
**>
**> m1<-nls(richness ~ Const+B*(area^A))
**>
**> Thanks a lot,
**> miltinho
**> Brazil.
**>
*

for easier notation, let y=richness, x=area, C=const in the following.

then

nls(y~B*x^A + C, start = c(A=3.2, B=0.002, C=0))

converges alright. where's the problem (apart from this being not a very good model for the data)? the critical point is to provide some reasonable estimate of the parameters as starting values.

to get reasonable start values, I'd use:

y = B*x^A + C --> log(y-C) = log(B) + A*log(x) --> ly = b + a*lx,

estimate C from the x -> 0 asymptotic value (approx. 0)

and use lm(ly~lx) which yields a and b estimates which you could use in `nls'.

and, contrary to other assessments you've received, I definitely would prefer `nls' for least squares fitting instead of using `optim' or other general minimization routines.

hth

joerg

para armazenamento!

[[alternative HTML version deleted]]

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. Received on Mon 03 Dec 2007 - 01:20:39 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Mon 03 Dec 2007 - 01:30:16 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*