我正在运行以下代码:
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)
答案 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
专有。对于lm
,glm
,同样会发生。