How to find the row wise linear regression coefficients?
    15 views (last 30 days)
  
       Show older comments
    
    Abhishek Chakraborty
 on 29 Oct 2021
  
    
    
    
    
    Commented: Abhishek Chakraborty
 on 30 Oct 2021
            I have 3 matrices Y, x1, and x2 each having 3420 rows and 29 columns. I want the row wise linear regression coefficients of Y on x1, x2, and the interaction between x1 and x2 for their corresponding rows such that the regression coefficient term for each of them is of 3420 rows and 1 column. 
I tried the following code:
y=rand([3420,28]);
x1=rand([3420,28]);
x2=rand([3420,28]);
n = 3420;
b = zeros(n,4);
X=zeros(n,4);
for i=1:n
X(i,4)=[ones([28,1]) x1(i,:)' x2(i,:)' (x1(i,:).*x2(i,:))'];
b(i,4)=(regress(y(i,:)',X(i,4)))';
end
But it is not giving the desired result. 
How to get the linear regression coefficients of Y on x1, x2, and interaction between x1, x2 as a 3420 rows and 1 column array? 
0 Comments
Accepted Answer
  Ive J
      
 on 30 Oct 2021
        nsample = 29;
nvar = 3420;
% sample data 
y = rand(nsample, nvar);
x1 = rand(nsample, nvar);
x2 = rand(nsample, nvar);
xInt = x1.*x2;
intercept = ones(nsample, 1);
beta = zeros(nvar, 4);
for i = 1:nvar
    desMat = [intercept, x1(:, i), x2(:, i), xInt(:, i)];
    beta(i, :) = regress(y(:, i), desMat);
end
size(beta)
Each row of beta contains coefficients for each variables in nvar.
More Answers (0)
See Also
Categories
				Find more on Descriptive Statistics 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!
