use*_*925 1 loops r matrix linear-regression plyr
我有一个非常简单的问题,我相信有一个优雅的答案(我也确定上面的标题是不合适的).我有一个y值的向量:
y = matrix(c(1, 2, 3, 4, 5, 6, 7), nrow=7, ncol=1)
Run Code Online (Sandbox Code Playgroud)
我想对矩阵中的每一列进行回归,x:
x = matrix(c(1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 4, 4, 4, 4, 4, 4, 4), nrow=7, ncol=3)
Run Code Online (Sandbox Code Playgroud)
例如,我想将x的第一列与y线性回归,然后x的第二列对y进行线性回归,直到达到x的最后一列:
regression.1=lm(y~x[,1])
regression.2=lm(y~x[,2])
Run Code Online (Sandbox Code Playgroud)
我稍后想要绘制这些回归与其他参数的斜率,因此如果模型系数参数可以通过常规方式轻松访问,那将非常有用:
slope.1 = summary(regression.1)$coefficients[2,1]
Run Code Online (Sandbox Code Playgroud)
我正在使用像plyr这样的东西来猜测一个列表,但是我对这个游戏来说太新了,无法找到最简单的编码方法.
store <- mapply(col.ind = 1:ncol(x),function(col.ind){ lm(y~x[,col.ind]) })
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下方法访问斜率
> store[1,]
[[1]]
(Intercept) x[, col.ind]
6.713998e-16 1.000000e+00
[[2]]
(Intercept) x[, col.ind]
8 -1
[[3]]
(Intercept) x[, col.ind]
4 NA
Run Code Online (Sandbox Code Playgroud)