响应值为高维时的线性回归

时间:2015-11-14 05:41:24

标签: r regression linear-regression

我正在尝试使用我刚刚获得的一些数据进行线性回归,但我只是不知道如何开始。对我来说问题是响应(y)值像矢量一样是多维的。

例如:

sample 1, y <- c(3,7,10,36,23), while x1 <- 3, x2 <- 2, x3 <- 12, ....
sample 2, y <- c(4,5,13,21,9), while x1 <- 4, x2 <- 5, x3 <- 7, ....
....

1 个答案:

答案 0 :(得分:0)

你可以在R。

中相当容易地做到这一点
df <- data.frame(c(3,4),c(7,5),c(10,13),c(36,21),c(23,9),c(3,4),c(2,5),c(12,7))
colnames(df) <- c("y1","y2","y3","y4","y5","x1","x2","x3")
lmod1 <- lm(cbind(y1,y2,y3,y4,y5)~x1+x2+x3,data=df)

#or you can combine these into a matrix
y <- matrix(c(df$y1,df$y2,df$y3,df$y4,df$y5),ncol=5)
x <- matrix(c(df$x1,df$x2,df$x3),ncol=3)
lmod2 <- lm(y~x)

注意 - 在此示例代码中,x2 / x3的估计值将失败,这只是因为观察结果很少(但它应该适用于实际数据集)。

编辑 - 我应该补充一点,这种方法适合单独的单变量模型,假设y1,y2,y3等之间的独立性。