R lme4带挖泥船的随机效应结构
我已在R lme4带挖泥船的随机效应结构,r,mixed-models,R,Mixed Models,我已在druge中构建了一个lme4模型,用于模型选择,但我无法将随机效应与相关固定效应对齐。我的完整模型的结构如下所示 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) y ~x1 + (0+x1|Year) + (0+x1
druge
中构建了一个lme4
模型,用于模型选择,但我无法将随机效应与相关固定效应对齐。我的完整模型的结构如下所示
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)
y ~x1 + (0+x1|Year) + (0+x1|Country) + (0+x2|Year) +(0+x2|Country) + (1 | Year) +(1|Country), family=binomial('logit')
是否有一种方法可以配置
疏通
不选择具有其他指定固定效果的随机效果?我有大约x1…x50。你不能开箱即用,因为drage
目前省略了所有(x | g)
表达式,但是你可以在(g
)lmer
周围做一个“包装器”,用其他东西(例如re(x,g)
)替换公式中的“|”项,因此,droge
认为这些是固定的效果。例如:
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)
现在,
操纵固定和随机效果 你不能开箱即用,因为
druge
目前省略了所有(x | g)
表达式,但是你可以在(g
)lmer
周围做一个“包装器”,用其他东西(例如re(x,g)
)替换公式中的“|”术语,这样druge
认为这些是固定的效果。例如:
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)
现在,
操纵固定和随机效果 这是一项伟大的工作,对我来说很有效。我需要减少不必要的组合的数量。在您的示例中,我尝试只保留包含两种“固定”效果的模型,如下所示
druge(fm,subset=re(1,herd)和&re(1,obs))
,但这似乎不起作用。您将如何配置druge
以仅保留包含're(1,obs)'和re(1,herd)
?druge(fm,fixed=~re(1,herd)+re(1,obs))
这是一个很好的解决方法,对我来说很有效。我需要减少不必要的组合的数量。在您的示例中,我尝试只保留包含两种“固定”效果的模型,如下所示druge(fm,subset=re(1,herd)和&re(1,obs))
,但这似乎不起作用。您将如何配置druge
以仅保留包含“re(1,obs)”和re(1,羊群)
?druge(fm,fixed=~re(1,羊群)+re(1,obs))
dredge(fm)