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)
操纵固定效应和随机效应。
我已经为 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)
操纵固定效应和随机效应。