How to make a linear regression coefficient algorithm
조회 수: 5 (최근 30일)
이전 댓글 표시
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
Rik
2023년 3월 21일
Only the definition for alpha is missing. What exactly is your question, and how exactly is this a Matlab question?
답변 (3개)
Sugandhi
2023년 3월 21일
편집: Sugandhi
2023년 3월 21일
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-
- mean- https://www.mathworks.com/help/matlab/ref/mean.html?searchHighlight=mean&s_tid=srchtitle_mean_1
- Covariance- https://www.mathworks.com/help/matlab/ref/cov.html?searchHighlight=cov&s_tid=srchtitle_cov_1
- Variance- https://www.mathworks.com/help/matlab/ref/var.html?searchHighlight=var&s_tid=srchtitle_var_1
댓글 수: 0
KSSV
2023년 3월 21일
편집: KSSV
2023년 3월 21일
x = 1:10 ;
y = rand(1,10) ;
[a,b] = linreg(x,y) ;
% Check
p = polyfit(x,y,1) ;
[a b ; p(2) p(1)]
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
댓글 수: 0
John D'Errico
2023년 3월 21일
편집: John D'Errico
2023년 3월 21일
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);
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!