How to do linear regression?
Show older comments
How to do a regression line ?
1 Comment
Stephan
on 22 Aug 2018
Do you have access to Optimization Toolbox or to Curve Fitting Toolbox?
Answers (2)
Star Strider
on 22 Aug 2018
1 vote
5 Comments
Stephan
on 22 Aug 2018
Note that this solution only gives a correct answer, when the function passes through the origin of the coordinate system
y= m .* x + n ---> with n = 0
will give a correct answer. If n~=0 you get more bad results for m the more n is different from zero.
Star Strider
on 22 Aug 2018
It gives a correct result if you include a column vector of ones with the independent variable to estimate the intercept:
B = [x(:) ones(size(x(:)))] \ y(:); % Estimate Parameters
yfit = [x(:) ones(size(x(:)))] * B; % Calculate Regression Line
figure
plot(x, y, 'pg')
hold on
plot(x, yfit, '-r')
hold off
grid
Stephan
on 22 Aug 2018
Nice,
and learned something again ;-)
Star Strider
on 22 Aug 2018
Thank you!
Actually, I got the idea for the column of ones from the documentation for the regress (link) function when I first began using it, many years ago. (I simply forgot to include polyfit and friends initially.)
Stephan
on 22 Aug 2018
I had to think about it for a few minutes. But after understanding what happens, i saw that this is a pretty nice approach.
Image Analyst
on 22 Aug 2018
0 votes
See my attached demo.

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!