MATLAB Answers

what is an accurate function for linear regression?

15 views (last 30 days)
Abdulaziz Abutunis
Abdulaziz Abutunis on 7 Oct 2016
Edited: dpb on 8 Oct 2016
Hi All,
can anyone tell me an accurate function for linear regression (fitting a line to data). I am also interested in the slop, interception and R-square of the fitted line. I am only familiar with polifit
Thanks Aziz

  0 Comments

Sign in to comment.

Accepted Answer

dpb
dpb on 7 Oct 2016
Edited: dpb on 8 Oct 2016
Which Toolboxen do you have? There's fit in the Curve Fitting TB and LinearModel.fit in the Statistics Toolbox. polyfit is certainly just as accurate; for such simple fitting and wants, the coefficients are returned directly and Rsq is easily computed from the definition as 1-SSE/SST
ADDENDUM
>> x=1:10; x=x(:); y=randn(size(x)); % sample data
>> b=polyfit(x,y,1) % fit....
b =
0.2412 -0.7021
>> plot(x,y,'-*)
>> yhat=polyval(b,x); % evaluate
>> hold all
>> plot(x,yhat)
>> mn=mean(y);
>> dot(y-mn,y-mn) % definition for SST, total sum squares
ans =
28.1924
>> SST=var(y)*(length(y)-1) % Use builtin VAR function
SST =
28.1924
>> SSE=dot(y-yhat,y-yhat)
SSE =
23.3944
>> Rsq=1-SSE/SST
Rsq =
0.1702

  0 Comments

Sign in to comment.

More Answers (0)

Sign in to answer this question.