我不知道了如何在MuMIn::dredge()
做到这一点(见下文我尝试)。
set.seed(101)
dd <- data.frame(x=rnorm(1000),
var1=rnorm(1000),
var2=rnorm(1000),
var3=rnorm(1000),
var4=sample(factor(sample(1:20,size=1000,replace=TRUE))),
var5=sample(factor(sample(1:20,size=1000,replace=TRUE))),
var6=sample(factor(sample(1:20,size=1000,replace=TRUE))))
library(lme4)
m0 <- lmer(x~var1+var2+var3+(1|var4)+(1|var5)+(1|var6),dd,REML=FALSE,
na.action=na.fail)
如果我们尝试使用m.lim
论证其子集只有固定效应,但保留在所有的随机效应而言:
dredge(m0,m.lim=c(0,1))
## Model selection table
## (Intrc) var1 var2 var3 df logLik AICc delta weight
## 1 0.02350 5 -1417.485 2845.0 0.00 0.412
## 3 0.02389 -0.03256 6 -1416.981 2846.0 1.02 0.248
## 5 0.02327 0.02168 6 -1417.254 2846.6 1.56 0.189
## 2 0.02349 -0.002981 6 -1417.480 2847.0 2.02 0.151
## Models ranked by AICc(x)
## Random terms (all models):
## ‘1 | var4’, ‘1 | var5’, ‘1 | var6’
继demo(dredge.subset)
,我想这是一个例子:
dredge(m0,
subset=expression(!((var1 && var2) || ((1|var4) && (1|var5)))))
,但得到
Error in dredge(m0, subset = expression(!((var1 && var2) || ((1 | var4) && :
unrecognized names in 'subset' expression: "var4" and "var5"
我无法找到如何在模型做疏通/模型平均有MuMIn::dredge()
不同的随机效应的任何文件(事实上,我不相信这是一个好主意)。 如果你想满足所有车型恰好与一个固定作用,只有一个随机的效果来看,可以按如下方式做到这一点:
设立的所有组合:
fvars <- paste0("var",1:3)
gvars <- paste0("(1|var",4:6,")")
combs <- as.matrix(expand.grid(fvars,gvars))
现在适合他们:
mList <- list()
for (i in 1:nrow(combs)) {
mList[[i]] <- update(m0,
formula=reformulate(combs[i,],response="x"))
}
现在你可以使用lapply
或sapply
对列表中的元素,如操作:
lapply(mList,formula)
## [[1]]
## x ~ var1 + (1 | var4)
##
## [[2]]
## x ~ var2 + (1 | var4)
##
## [[3]]
## x ~ var3 + (1 | var4)
##
## [[4]]
## x ~ var1 + (1 | var5)
## ... et cetera ...
bbmle::AICtab(mList,weights=TRUE)
## dAIC df weight
## model5 0.0 4 0.344
## model6 0.5 4 0.262
## model4 1.0 4 0.213
## model8 4.1 4 0.044
## ... et cetera ...
...但你必须要继续有点难做模型平均。您可以尝试[email protected]
,[email protected]
或电子邮件MuMIn
(maintainer("MuMIn")
)的维护人员...
非常感谢您Ben!我会联系他们,或者做所有可能的组合,排除那些无关紧要的组合。在Excel中它可能是可能的! – Teresa