我希望使用线性混合模型,并在人群水平上进行预测(即仅使用固定效应,将随机效应替换为0)。
示例模型:
require(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
summary(fm1)
# values for prediction:
newx <- seq(min(sleepstudy$Days), max(sleepstudy$Days))
我尝试了几种人口水平的预测方法,但它们都失败了:
pred <- predict(fm1, newdata = data.frame(Days = newx), allow.new.levels = TRUE)
# Error: couldn't evaluate grouping factor Subject within model frame: try adding grouping factor to data frame explicitly if possible
pred <- predict(fm1, newdata = data.frame(Days = newx, Subject = NA), allow.new.levels = TRUE)
# Error: Invalid grouping factor specification, Subject
pred <- predict(fm1, newdata = data.frame(Days = newx, Subject = as.factor(NA)), allow.new.levels = TRUE)
# Error: Invalid grouping factor specification, Subject
我试图寻找适当的预测方法的手册,但我不知道应该怎么做?我尝试查看help(package = "lme4")
,找到的最接近的函数是predict.merMod
(虽然模型fm1
的类是lmerMod
而不是merMod
)。?predict.merMod
读取:
allow.new.levels (logical) 如果为FALSE(默认),则在newdata中检测到任何新级别(或NA值)都将触发错误;如果为TRUE,则预测将使用先前未观察到的级别(或NA)的无条件(人口水平)值。
它明确表示“或NA”,但显然并非如此!
- 我是否在查看正确的方法帮助页面?如果不是,什么是正确的方法?
- 如何使预测在人口水平上起作用?