R中的多级逻辑回归预测

时间:2021-04-24 13:02:30

标签: r logistic-regression prediction hierarchical-data multi-level

我正在 r 中研究多级逻辑模型。

我正在尝试预测球员射门命中球门的可能性。第一关是投篮,第二关是球员。 模型如下:

  • situation 是一个包含 5 个因素的分类变量;
  • shotType 是一个有 4 个因子的分类变量;
  • posizione 是一个有 7 个因子的分类变量;
  • lastAction 是一个有 6 个因子的分类变量;
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

谁能帮我弄清楚如何解决这个错误?

0 个答案:

没有答案