您的大部分问题是您使用的是 1.0 之前的版本lme4
,其中没有predict
方法实施。 (更新是最简单的,但我相信,如果您由于某种原因无法更新,可以在http://glmm.wikidot.com/faq http://glmm.wikidot.com/faq通过提取固定效应设计矩阵和系数来手动进行预测...)实际上预测没有问题,它预测对数赔率(默认情况下)或概率(如果type="response"
);如果你想预测数字,你必须适当地乘以 N。
您没有给出一个,但这是一个使用内置的可重现的(尽管有点微不足道)示例cbpp
数据集(我确实收到了一些警告消息——no non-missing arguments to max; returning -Inf
——但我认为这可能是因为模型中只有一个不平凡的固定效应参数?)
library(lme4)
packageVersion("lme4") ## 1.1.4, but this should work as long as >1.0.0
library(MuMIn)
方便以后使用(用ggplot
) 为比例添加一个变量:
cbpp <- transform(cbpp,prop=incidence/size)
拟合模型(您也可以使用glmer(prop~..., weights=size, ...)
)
gm0 <- glmer(cbind(incidence, size - incidence) ~ period+(1|herd),
family = binomial, data = cbpp)
dredge.models<-dredge(gm0,trace=FALSE,rank="AICc")
my.dredge.models<-get.models(dredge.models)
silly<-model.avg(my.dredge.models,subset=delta<10)
预测确实有效:
predict(silly,type="response")
创建情节:
library(ggplot2)
theme_set(theme_bw()) ## cosmetic
g0 <- ggplot(cbpp,aes(period,prop))+
geom_point(alpha=0.5,aes(size=size))
设置预测框架:
predframe <- data.frame(period=levels(cbpp$period))
Predict 在人口层面 (ReForm=NA
——这可能必须是REForm=NA
在 lme4 `1.0.5) 中:
predframe$prop <- predict(gm0,newdata=predframe,type="response",ReForm=NA)
将其添加到图表中:
g0 + geom_point(data=predframe,colour="red")+
geom_line(data=predframe,colour="red",aes(group=1))