> -----Original Message----- > From: [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED] On Behalf Of Ana Quitério > Sent: Wednesday, January 25, 2006 3:33 PM > To: r-help@stat.math.ethz.ch > Subject: [R] Question about fitting power > >From: Ana Quitério > > > > Hi R users > > > > I'm trying to fit a model y=ax^b. > > > > I know if I made ln(y)=ln(a)+bln(x) this is a linear regression. > > > > But I obtain differente results with nls() and lm() > > > > My commands are: > nls(CV ~a*Est^b, data=limiares, start =list(a=100,b=0), trace = TRUE) > for nonlinear regression, and : > lm(ln_CV~ln_Est, data=limiares) > for linear regression > > > > Nonlinear regression model: a=738.2238151 and b=-0.3951013 > > Linear regression: Coefficients: > > Estimate Std. Error t value Pr(>|t|) > > (Intercept) 7.8570224 0.0103680 757.8 <2e-16 *** > ln_Est -0.5279412 0.0008658 -609.8 <2e-16 *** > > > > I think it should be a=exp("(Intercept) ") = > > exp(7.8570224) = 2583.815 and b=ln_Est > > > > Probably I'm wrong, but why?? > > > > Thanks in advance. > > Ana Quiterio
In addition to what Andy said, maybe your nls() model is not natural because a power statistical model should produce multiplicative outcomes. An alternative is to try the nonlinear power model with multiplicative deviates assuming lognormality (which is what the linear model does but without the need for back-transformation), with nlm(), for instance: fn<-function(p){ + CV_mod=p[1]*Est^p[2]; + squdiff=(log(limiares$CV)-log(CV_mod))^2; + lik=(length(limiares$CV)/2)*log(sum(squdiff)/length(limiares$CV)) + } CV.lik<-nlm(fn,p=c(100,0),hessian=TRUE) fec.lik covmat<-solve(CV.lik$hessian) covmat Ruben ______________________________________________ R-help@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