Lmer4预测函数返回拟合值,而不是新数据值

时间:2016-08-01 15:17:47

标签: r

我正在运行以下代码:

results <- lmer(train$y ~ factor(train$x1) + (1|factor(train$x2)))
predicted <- predict(results, newdata=test)

但是,length(predicted)不等于nrow(test),而是等于nrow(train)

即使我对data=train使用lmer,我仍然遇到同样的问题。

我做错了什么?

更新:看起来这条路线修好了。

predicted <- predict(results, newdata=data.frame(y=test$y,x1=test$x1,x2=factor(test$x2)),allow.new.levels=TRUE)

1 个答案:

答案 0 :(得分:2)

因为您在模型拟合期间使用train$。尝试:

results <- lmer(y ~ factor(x1) + (1|factor(x2)), data = train)
predicted <- predict(results, newdata=test)

请勿使用以下任何一项:

results <- lmer(train$y ~ factor(train$x1) + (1|factor(train$x2)))
results <- lmer(train$y ~ factor(train$x1) + (1|factor(train$x2)), data = train)

此问题并非lmer专有。对于lmglm,同样会发生。