【发布时间】:2015-09-09 17:07:52
【问题描述】:
在多元回归(多个响应)的情况下,predict.lm 函数似乎不起作用。它只预测第一个响应。
示例代码:
df = data_frame(x1 = c(1:20),
y1 = x1 + rnorm(20,5,sd = 5),
y2 = 2*x1 + rnorm(20,-5,sd = 3))
m1 = lm(cbind(y1, y2) ~ x1, data = df)
m1
## Call:
## lm(formula = cbind(y1, y2) ~ x1, data = df)
## Coefficients:
## y1 y2
## (Intercept) 7.5934 -5.9436
## x1 0.8704 2.0913
如果我尝试使用此模型对象进行预测(对于训练数据或 newdata),它只会预测第一个响应。
# predicts only for y1
length(predict.lm(m1))
## [1] 20
# predicts only for y1
predict.lm(m1, newdata = data_frame(x1 = 50))
## 1
## 51.11093
我怎样才能让这个函数适用于多个响应?
【问题讨论】:
-
使用
predict,这样它就可以发送到predict.mlm