How to make a linear regression coefficient algorithm

4 views (last 30 days)
I wrote this code and I don't know how to use the formulae
function [alpha, beta] = linreg( x, y )
beta = cov( x, y ) / var( x ) ;
% ...
end
  1 Comment
Rik
Rik on 21 Mar 2023
Only the definition for alpha is missing. What exactly is your question, and how exactly is this a Matlab question?

Sign in to comment.

Answers (3)

Sugandhi
Sugandhi on 21 Mar 2023
Edited: Sugandhi on 21 Mar 2023
Hi Karthik,
I understand that you want to make a linear regression coefficient algorithm by using the above formula.
function [alpha, beta] = linreg( x, y )
beta = cov( x, y ) / var( x ) ;
xbar=mean(x);
ybar=mean(y);
alpha = ybar+beta*xbar;
end
According to the formula provided, xbar and ybar are mean of x and y data respectively. Alpha is calculated using xbar,ybar and beta. Beta is ratio of covariance of x,y and variance of x data.
For more understanding, kindly go through following links-

KSSV
KSSV on 21 Mar 2023
Edited: KSSV on 21 Mar 2023
x = 1:10 ;
y = rand(1,10) ;
[a,b] = linreg(x,y) ;
% Check
p = polyfit(x,y,1) ;
[a b ; p(2) p(1)]
ans = 2×2
0.6914 -0.0493 0.6914 -0.0493
function [alpha, beta] = linreg( x, y )
n = length(x) ; % get the length of x and y
xbar = mean(x) ; % mean of x
ybar = mean(y) ; % mean of y
Sxy = 1/(n-1)*sum((x-xbar).*(y-ybar)) ;
Sx2 = 1/(n-1)*sum((x-xbar).^2) ;
beta = Sxy/Sx2 ;
alpha = ybar-beta*xbar ;
end

John D'Errico
John D'Errico on 21 Mar 2023
Edited: John D'Errico on 21 Mar 2023
Why do you want to write your own linear regression code? This is generally a bad idea. Never write code to do what a professional will have done better, and has already been written for you.
ab = polyfit(x,y,1);
Alph = ab(2);
Bet = ab(1);

Community Treasure Hunt

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

Start Hunting!