Curve fitting confidence intervals - discrepancy in manual CI plot and predint plot
Show older comments
Hello friends, I am trying to find 95% CI on the fitted coefficients. The code I used is as follows(not the actual fitting function):
fo = fitoptions('Method','NonlinearLeastSquares');
myfittype = fittype('ax + b', 'dependent',{'y'}, 'independent', {'x'}, 'coefficients',{'a','b'});
[myfit,res] = fit(x,y,myfittype,fo);
fit_params = coeffvalues(myfit);
ci = confint(myfit,0.95);
To plot the CIs, I plug in the values of a and b from confint output to the original equation y = ax + b.
However, this CI is different from when I use plot(myfit,'predobs'). I am not clear on why this is so even after reading the MATLAB literature. Also, what is predint and how is this different from manually plotting the CIs as I did?
My main goal in the fitting is find what is the 95% interval in which a and b lies. Any help will be appreciated. Thank you.
Answers (3)
Did you read
?
The formulae to compute the different prediction bounds are listed here.
95% prediction bounds on the parameters are computed correctly in your code as ci = confint(myfit,0.95).
95% prediction bounds on the fit are different from simply plugging in the bounds a_low, b_low, a_high, b_high for a and b from confint and computing a_low*x + b_low and a_high*x + b_high for a given x ( I guess that's what you meant by "To plot the CIs, I plug in the values of a and b from confint output to the original equation y = ax + b." )
Star Strider
3 minutes ago
0 votes
Without knowing exactly what you did, be sure to use the full precision when you 'plug in the values'. If you use the precision displayed (usually short), you will get different fresult than you would get by using the full precision values.
Also, what is predint and how is this different from manually plotting the CIs as I did?
predint predicts an uncertainty interval for y, not for a and b. As the others have said, it seems you tried to use some ad hoc method of your own (one whose details are not clear to us) to derive confidence intervals on y from confidence intervals on a and b. That is not normally what is done, and in fact, usually it goes the other way around: you start with an uncertainty estimate on y and then try to derive confidence intervals on a and b from that.
My main goal in the fitting is find what is the 95% interval in which a and b lies.
If so, it is unclear why we are talking about predint, predobs, or even plotting at all. Your "main goal" was achieved once you ran confint.
Categories
Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!