首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带glmer的MUMIn疏浚误差

带glmer的MUMIn疏浚误差
EN

Stack Overflow用户
提问于 2015-05-15 14:02:53
回答 1查看 1K关注 0票数 2

我正在尝试使用并行计算版本的疏浚(package MUMIn)来选择完整的glmer模型:

代码语言:javascript
复制
 modmer.pom.full<-glmer(cbind(TEST,CONTROL)~ G+MS+l+MS*l+G*MS+G*l+I(l^2) + (1|c)+(1|s)+(1|l)+offset(log(qTEST/qCONTROL)),family=binomial(link = "logit"),data=df.pom.mer, control=glmerControl(optimizer="bobyqa"))

将R集群设置为并行运行后,

代码语言:javascript
复制
cl <- makeCluster(3)
registerDoParallel(cl)
clusterExport(cl,"df.pom.mer")

我只是尝试使用pdredge函数,如下所示:

代码语言:javascript
复制
pdredge(modmer.pom.full,cluster=cl,rank = "AIC")

但是没有评估,相反,我得到了所有子模型的以下输出:

代码语言:javascript
复制
Warning messages:
1: In eval(expr, envir, enclos) :
  could not find function "glmer" (model 0 skipped)

我没有通过使用非并行计算函数疏浚来观察这个问题。看来格利默没有被普雷奇认出来,但我找不到原因。我是MUMIn和并行包的新用户,所以我会不会在pdredge参数中遗漏了一些重要的东西?

非常感谢,胡安

EN

回答 1

Stack Overflow用户

发布于 2020-08-25 22:01:55

为了完整起见,正如注释中所建议的那样,如果您(1)指定了完全限定的名称(下面的lme4::lmer)或(2)使用clusterEvalQ(cluster, library(lme4))来确保包加载到工作人员上,这就很好了。

代码语言:javascript
复制
library(lme4)
library(parallel )
cluster = makeCluster(3, type = "SOCK")  ## also need snow installed
set.seed(101)
dd <- data.frame(x1=rnorm(1000),x2=rnorm(1000),x3=rnorm(1000),f=rep(1:20,each=50))
dd$z <- simulate(~x1+x2+x3+(1|f), newdata=dd, 
      newparams=list(theta=1,beta=rep(1,4), sigma=1), family=gaussian)[[1]]
full_model = lme4::lmer(z ~ x1*x2*x3 + (1 | f), data = dd, 
                        REML = FALSE, na.action = "na.fail")
clusterExport(cluster,"dd")
clusterEvalQ(cluster, library(lme4))
MuMIn::pdredge(full_model, cluster)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30261473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档