lme4随机效应结构带疏通

lme4 random effect structure with dredge

我已经为 dredge 中的模型 selection 构建了一个 lme4 模型,但是我无法将随机效应与我的相关固定 effects.The 结构对齐完整模型如下

fullModel<-glmer(y ~x1 + x2 + (0+x1|Year) + (0+x1|Country) + (0+x2|Year) + (0+x2|Country) + (1 | Year) +(1|Country), family=binomial('logit'),data = alldata)

在这个模型结构中,dredge中的模型selection产生了三种固定效应的组合,即x1、x2和x1+x2,但是随机效应结构与完整模型,这样即使固定效应只有 x1,随机效应也会包括 (0+x2|Year) + (0+x2|Country)。例如,只有 x1 作为固定效应的模型,在随机效应结构中仍会有 x2,如下所示。

y ~x1 + (0+x1|Year) + (0+x1|Country) + (0+x2|Year) +(0+x2|Country) + (1 | Year) +(1|Country), family=binomial('logit')

有没有办法配置 dredge 不 select 指定了其他固定效果的随机效果?我有大约 x1….x50.

你不能开箱即用,因为 dredge 目前省略了所有 (x|g) 表达式,但你可以围绕 (g)lmer 替换“|”公式中的项与其他内容(例如 re(x,g)),因此 dredge 认为这些是固定效果。示例:

glmerwrap <-
function(formula) { 
    cl <- origCall <- match.call()
    cl[[1L]] <- as.name("glmer") # replace 'lmerwrap' with 'glmer'
    # replace "re" with "|" in the formula:
    f <- as.formula(do.call("substitute", list(formula, list(re = as.name("|")))))
    environment(f) <- environment(formula)
    cl$formula <- f
    x <- eval.parent(cl) # evaluate modified call
    # store original call and formula in the result:
    x@call  <- origCall
    attr(x@frame, "formula") <- formula
    x
}
formals(glmerwrap) <- formals(lme4::glmer)

正在关注 example(glmer)

# note the use of re(x,group) instead of (x|group)
(fm <- glmerwrap(cbind(incidence, size - incidence) ~ period +
    re(1, herd) +  re(1, obs), family = binomial, data = cbpp))

现在,

dredge(fm)

操纵固定效应和随机效应。