I have to perform multiple linear regression for many vectors of dependent variables on the same matrix of independent variables.
For example, I want to create 3 models such that:
lm( d ~ a + b + c )
lm( e ~ a + b + c )
lm( f ~ a + b + c )
from the following matrix (a,b,c are the independent variables and d,e,f are the dependent variables)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] a1 b1 c1 d1 e1 f1
[2,] a2 b2 c2 d2 e2 f2
[3,] a3 b3 c3 d3 e3 f3
I then want to store the coefficients from the regression in another matrix (I have reduced the number of columns and vectors in my example for ease of explanation).
Here's a method that is not very general, but will work if you substitute your own dependent variable names in
depvar
, and of course the independent variables common to all models in the innerlm()
call, and of course the dataset name. Here I have demonstrated onmtcars
, a built-in dataset supplied with R.Edit based on suggestion by @Mike Wise:
If you want only a numeric dataset but want to keep the identifier, you can add it as a row.name, like this: