Fitting an exponential curve to data and comparing it to excel

2 views (last 30 days)
Hi,
I'm trying to fit an exponential curve to the following dataset: x = [3.9; 8.6; 13.3; 17.9; 22.6]; y = [100; 10; 1; 0.1; 0.01]; I fit an exp curve using: cf = fit(x,y,'exp1'); It gives me the following results: a = 675.8 and b = -0.4899. When I compare it to the equation obtained in Excel, a = 690.81 and b = -0.493. I think that Excel is giving the correct solution. But can anyone explain the difference in results?
Thanks.

Accepted Answer

Richard Willey
Richard Willey on 24 Feb 2011
Hi Alice
I just ran this same example using MATLAB and Excel. In both cases, the coefficients from the nonlinear regression agree with the ones that you provided.
I would argue that MATLAB's answer is more accurate. The coefficients that are output by Excel are generated from a regression model with an R^2 of 98.78. (The regression model is able to explain 98.78% of the variability in the data set). The MATLAB regression model has an R^2 which is (essentially) 1.00. The regression model produced by MATLAB explains almost 100% of the variabily.
You posed an example of what's known as nonlinear regression. Linear regression is solved using linear algebra techniques. Nonlinear regression is solved with optimization based techniques. As a result, the quality of the solution can vary depending on what starting conditions get provided to the optimization solvers.
One nice feature of Curve Fitting Toolbox is that the library of standard regression models includes code that automatically chooses good starting conditions for the Optim solvers.
I suspect that this explains the difference in the results.
There is another possibility: Some nonlinear regression problems can be transformed into linear regression models and then solved with linear algebra techniques (bypassing the whole starting condition issue). For example, I could linearize the following model with a log transform.
Y = a*exp(b*x)
This technique has its advantages, but it can lead to some problems. The Statistics Toolbox demo page has a great demo that discusses this topic in detail.
regards,
Richard
  1 Comment
Alice
Alice on 3 Mar 2011
Thanks Richard! I was actually mainly getting confused by the log transform, that's why I thought Excel was more accurate. But it kind of makes sense now.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!