我不知道了如何在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