[R] R nls results different from those of Excel ??
Prof J C Nash (U30A)
nashjc at uottawa.ca
Tue Feb 19 14:10:09 CET 2013
This thread unfortunately pushes a number of buttons:
- Excel computing a model by linearization which fits to
residual = log(data) - log(model)
wanted_residual = data - model
The COBB.RES example in my (freely available but rather dated) book
at http://macnash.telfer.uottawa.ca/nlpe/ shows an example where
comparing the results shows how extreme the differences can be.
- nls not doing well when the fit is near perfect. Package nlmrt is
happy to compute such models, which have a role in approximation. The
builders of nls() are rather (too?) insistent that nls() is a
statistical function rather than simply nonlinear least squares. I can
agree with their view in its context, but not for a general scientific
computing package that R has become. It is one of the gotchas of R.
- Rolf's suggestion to inform Microsoft is, I'm sure, made with the sure
knowledge that M$ will ignore such suggestions. They did, for example,
fix one financial function temporarily (I don't know which). However,
one of Excel's maintainers told me he would disavow admitting that
"Bill" called to tell them to put the bug back in because the president
of a large American bank called to complain his 1998 profit and loss
spreadsheet had changed in the "new" version of Excel. Appearances are
more important than getting things right. At the same conference where
this "I won't admit I told you" conversation took place, a presentation
was made estimating that 95% of major investment decisions were made
based on Excel spreadsheets. The conference took place before the 2008
crash. One is tempted to make non-statistical inferences.
On 13-02-19 06:00 AM, r-help-request at r-project.org wrote:
> Message: 79
> Date: Mon, 18 Feb 2013 22:40:25 -0800
> From: Jeff Newmiller<jdnewmil at dcn.davis.CA.us>
> To: Greg Snow<538280 at gmail.com>, David Gwenzi<dgwenzi at gmail.com>
> Cc: r-help<r-help at r-project.org>
> Subject: Re: [R] R nls results different from those of Excel ??
> Message-ID:<50c09528-7917-4a20-ad0e-5f4ebf9d0d6d at email.android.com>
> Content-Type: text/plain; charset=UTF-8
> Excel definitely does not use nonlinear least squares fitting for power curve fitting. It uses linear LS fitting of the logs of x and y. There should be no surprise in the OP's observation.
> Jeff Newmiller The ..... ..... Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
> Live: OO#.. Dead: OO#.. Playing
> Research Engineer (Solar/Batteries O.O#. #.O#. with
> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k
> Sent from my phone. Please excuse my brevity.
> Greg Snow<538280 at gmail.com> wrote:
>> >Have you plotted the data and the lines to see how they compare? (see
>> >Is there error around the line in the data? The nls function is known
>> >not work well when there is no error around the line. Also check and
>> >sure that the 2 methods are fitting the same model.
>> >You might consider taking the log of both sides of the function to turn
>> >into a linear function and using lm to fit the logs.
>> >On Mon, Feb 18, 2013 at 9:49 PM, David Gwenzi<dgwenzi at gmail.com>
>>> >>Hi all
>>> >>I have a set of data whose scatter plot shows a very nice power
>>> >>relationship. My problem is when I fit a Power Trend Line in an Excel
>>> >>spreadsheet, I get the model y= 44.23x^2.06 with an R square value of
>>> >>Now, if I input the same data into R and use
>>> >>model< -nls(y~ a*x^b , trace=TRUE, data= my_data, start = c(a=40,
>> >b=2)) I
>>> >>get a solution with a = 246.29 and b = 1.51. I have tried several
>>> >>values and this what I always get. I was expecting to get a value of
>>> >>close to 44 and that of b close to 2. Why are these values of a and b
>>> >>so different from those Excel gave me. Also the R square value for
>> >the nls
>>> >>model is as low as 0.41. What have I done wrong here? Please help.
>>> >>in advance
>>> >> [[alternative HTML version deleted]]
>>> >>R-help at r-project.org mailing list
>>> >>PLEASE do read the posting guide
>>> >>and provide commented, minimal, self-contained, reproducible code.
More information about the R-help