Calculate R squared from a linear regress

Hi, I have a set of scattered data and I can use the operator "\" to do a linear fit on the data. But is there a simple matlab function to get the R^2? I am trying to skip the calculation shown on page: https://www.mathworks.com/help/matlab/data_analysis/linear-regression.html
BTW, I don't have machine learning toolbox.
Thanks for any help. If there is no simple matlab function, then I will have to try to calculate by using the sample code shown on the above page.

 Accepted Answer

It depends on the regression you’re doing. If you have a simple bivariable (as opposed to multivariable) linear regression, you can simply square one of the off-diagonal elements of the (2x2) matrix returned by corrcoef. It will give the same result.

6 Comments

Thanks. It is a simple bivariable linear regression.
My pleasure.
That will work.
If my Answer helped you solve your problem, please Accept it!
Thank you!
I am reading about it.
As always, my pleasure!
This will provide a sort of computational ‘proof’. It uses polyfit and polyval, not the backslant operator, otherwise being the same:
A = 1:100; % Create Data
B = 1 + 2*A + 10*randn(size(A)); % Create Data
b = polyfit(A, B, 1);
f = polyval(b, A);
Bbar = mean(B);
SStot = sum((B - Bbar).^2);
SSreg = sum((f - Bbar).^2);
SSres = sum((B - f).^2);
R2 = 1 - SSres/SStot
R = corrcoef(A,B);
Rsq = R(1,2).^2
Thank you! This really helps a lot.
As always, my pleasure!

Sign in to comment.

More Answers (0)

Products

Tags

Asked:

JFz
on 22 Jan 2018

Commented:

on 22 Jan 2018

Community Treasure Hunt

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

Start Hunting!