P-value from nlinfit

4 views (last 30 days)
Morten
Morten on 30 Jan 2012
Hi
I'm using nlinfit to create an exponential fit in a correlation analysis. I would like to obtain the probability estimate of the model fit (or P-value). Can I find this in the covariance matrix? If so, in which index?
Best Morten

Accepted Answer

Tom Lane
Tom Lane on 30 Jan 2012
For a function like
f = @(b,x) b(1) + b(2)*x.^b(3);
you might be interested in the p-value for a test of whether coefficients 2 and 3 could be zero. That tests whether this fit is significantly better than a horizontal (constant) line. Here's how you could do that:
[b,~,~,covb] = nlinfit(x,y,f,[1 1 1]);
p = linhyptest(b(2:3),covb(2:3,2:3));
There are other arguments you can supply to linhyptest to further specify the hypothesis. Also, it's more accurate to supply the dfe argument; what I did results in a normal rather than t test.
  2 Comments
Morten
Morten on 31 Jan 2012
Perfect. Thanks.
However, in my case it would be even better to test the exponential fit (below) against a linear regression.
f = @(b,x)(b(1) + b(2)*exp(-b(3)*x))
Is that possible?
Tom Lane
Tom Lane on 31 Jan 2012
There's not a formal way that I know about to do that test. The usual thing is to test two models where one is a special case of the other. In both your model and mine, the horizontal line is a special case of the three-parameter fit.
More informally, people do use AIC to compare models that are not nested one inside the other.

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!