我维持BradleyTerry2
。这是当您在能力公式中有特定于比赛的预测器时发生的错误。它应该按照以下文件中的说明工作?BTabilities
:
...能力是根据仅涉及玩家协变量的拟合模型的条款计算的(那些在模型公式中由“model$id”索引)。因此,任何其他术语中的参数都假定为零。
我们不知道这不起作用,所以感谢错误报告。在修复之前,您可以直接计算能力和标准错误:
## get names of relevant coefficients
> nm <- grep("[ID]", names(coef(chameleon.model)),
> fixed = TRUE, value = TRUE)
> nm
[1] "ch.res[ID]" "prop.main[ID]"
## get names of corresponding predictors
> IDvar <- gsub("[ID]", "", nm, fixed = TRUE)
> IDvar
[1] "ch.res" "prop.main"
## create coefficient vector and design matrix
> cf <- coef(chameleon.model)[nm]
> X <- as.matrix(chameleons$predictors[, IDvar])
## compute abilities
> abilities <- X %*% cf
> colnames(abilities) <- "abilities"
## compute standard errors
> V <- vcov(chameleon.model)[nm, nm]
> res <- cbind(abilities = abilities,
> se = sqrt(diag(X %*% V %*% t(X))))
> head(res)
abilities se
C01 3.757229 1.655205
C02 2.404778 1.017782
C03 2.319346 1.133959
C04 1.892671 1.399391
C05 2.253472 1.101628
C06 2.015840 1.075806
这将为NA
在预测变量中具有缺失值的个人提供信息,但是他们的能力将单独建模并在模型摘要中返回。上面的代码还假设了连续的协变量,如果你的一些预测变量是因素,你需要更正式地创建一个模型矩阵,例如
X <- model.matrix(reformulate(IDvar, intercept = FALSE),
c(chameleons$predictors))