当我们在R中使用传统的逻辑回归进行预测时,例如:
library(dplyr)
n = 300
xx<-c("r1","r2","r3","r4","r5")
xxx<-c("e1","e2","e3")
p=0.3
df1 <- data_frame(
xx1 = runif(n, min = 0, max = 10),
xx2 = runif(n, min = 0, max = 10),
xx3 = runif(n, min = 0, max = 10),
School = factor(sample(xxx, n,re=TRUE)),
Rank = factor(sample(xx, n,re=TRUE)),
yx = as.factor(rbinom(n, size = 1, prob = p))
)
df1
mm<-glm(yx ~ xx1 + xx2 + xx3 + School + Rank,binomial,df1)
n11 = data.frame(School="e3",Rank="r2",xx1=8.58,xx2=8.75,xx3=7.92)
我们使用:
predict(mm, n11, type="response") #No meu caso especifico
你可以使用 predict(mm, n11) 进行预测。
根据我们的兴趣,没有问题。
但当我们使用GLMM时,则需要注意。
library(lme4)
mm2 <- glmer(yx ~ xx1 + xx2 + xx3 + Rank + (Rank | School), data = df1,
family = "binomial",control = glmerControl(calc.derivs = FALSE))
predict(mm2, n11, type="response") #No meu caso especifico
显示错误。
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
我尝试过这样做
predict(m2,n11, re.form=(~Rank|School))
这会显示错误信息
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "glmmadmb"
在R-GLMM中,正确的预测形式是什么?
glmmadmb
对象而不是merMod
(lme4)对象进行预测... - Ben Bolker