【发布时间】:2016-11-09 22:05:57
【问题描述】:
我有一个时间序列矩阵Y。行数是观察的数量。我还有一个预测矩阵X。我想在特定于这些列的预测变量上回归 Y 列。
1 和 0 的逻辑矩阵显示 i-th 变量是否应在 j-th 预测器上回归。
例如:
y1 <- c(1, 2, 3, 5, 7, 3, 2, 1)
y2 <- c(5, 1, 3, 1, 3, 4, 5, 3)
y3 <- c(1, 3, 4, 5, 1, 2, 1, 2)
x1 <- c(2, 5, 4, 2, 1, 3, 6, 7)
x2 <- c(1, 5, 1, 3, 4, 2, 1, 3)
Y <- cbind(y1, y2, y3)
X <- cbind(x1, x2)
logical <- matrix(c(1,1,0,1,0,1), 3, 2)
lm <- lm(Y ~ ??? - 1)
这里,y1 应该在 x1 和 x2 上回归,y2 在 x1 上回归,y3 在 x2 上回归。
我试图在lm 函数中指定模型,但我无法这样做。在$coefficients 结果中,当变量未在j-th 预测器上回归时,我想要“0”。
是否可以在没有大量脏循环的情况下这样做?
【问题讨论】:
-
reformulate函数可能会使这更容易一些。 -
因为我是一个初学者,我仍然对 lapply() 不太放心。你能提供一个上面的玩具数据集的例子吗?
-
好的!然后我将使用 for 循环来做到这一点。
标签: r time-series regression linear-regression lm