我正在与 lme4 的 glmer 拟合进行一些模型比较。我的全局模型有 4 个固定效应和 1 个随机效应,加上 3 个固定效应之间的相互作用:
响应 ~ a + b * c * d + (1|e)
挖掘函数返回具有双重和三重交互的模型,但当包含涉及该变量的交互时,固定效应始终包含在模型中。我想将所有模型组合与这些变量进行比较,包括具有交互项而没有主效应的模型,例如:
响应 ~ a + b + b:c + (1|e) 或 响应 ~ a + c + b:c + a:b:c + (1|e)
这可以通过 dredge() 函数实现吗?或者对于实现这一目标的方法还有其他建议吗?有很多模型需要手动指定。
我首先警告你,只有在你有充分的理由这样做/知道自己在做什么的情况下,你才应该违反边缘性原则(
MuMIn
按照它的方式设置默认值是有原因的.. .)。话虽如此:
model.matrix()
构造固定效应组件所需的所有单独变量:X <- model.matrix(~ a + b*c*d, data = yourdata)
colnames(X) <- make.names(colnames(X)) ## convert to syntactically allowed names
reformulate()
将所有这些变量与随机效应结合起来:newdata <- data.frame(X, yourdata[c("e", "response")])
form <- reformulate(c(colnames(X), "(1|e)", response = "response")
model <- glmer(form, family = ..., data = newdata)