我正在 r 中研究多级逻辑模型。
我正在尝试预测球员射门命中球门的可能性。第一关是投篮,第二关是球员。 模型如下:
M1a <- glmer(tiri_in_porta ~ situation + shotType + posizione + lastAction + (1|player),
family=binomial(link="logit"), data = Tiri_completo,
control=glmerControl(optCtrl=list(maxfun=1e6)), nAGQ = 10)
我通过在玩家级别插入解释变量 Age(定量)、ruolo(类别 4 级别)和 Sh.90(定量)使模型复杂化
M1b <- glmer(tiri_in_porta ~ situation + shotType + posizione + lastAction + (1+Age+ruolo+Sh.90|player),
family=binomial(link="logit"), data = Tiri_completo,
control=glmerControl(optCtrl=list(maxfun=1e6)), nAGQ = 1)
我可以使用第一个模型进行预测,但不能使用第二个模型进行预测。 对于第一个模型确实如此:
datanew <- Tiri_completo[,c(1,10,12,20,21)] # select the explanatory variables
previsioni_livello_0 <- predict(M1a, datanew, re.form=NA) # first level
previsioni_complete <- predict(M1a, datanew, re.form = ~(1|player))
previsioni_livello_0 <- boot::inv.logit(previsioni_livello_0)
previsioni_complete <- boot::inv.logit(previsioni_complete)
datanew <- cbind(datanew, previsioni_livello_0, previsioni_complete)
对于第二个模型,我有一个错误:
datanew1 <- Tiri_completo[,c(1,10,12,20,21,26:28)] # select the explanatory variables
previsioni_livello_0 <- predict(M1b, datanew1, re.form=NA) # first level
previsioni_complete <- predict(M1b, datanew1, re.form = NULL)
previsioni_livello_0 <- boot::inv.logit(previsioni_livello_0)
previsioni_complete <- boot::inv.logit(previsioni_complete)
datanew1 <- cbind(datanew1, previsioni_livello_0, previsioni_complete)
Error in `contrasts <-` (` * tmp * `, value = orig.random.cntr [[fn]]): wrong number of contrast matrix rows
谁能帮我弄清楚如何解决这个错误?