MUMIn pdredge ошибка с glmer

Я пытаюсь использовать версию dredge для параллельных вычислений (пакет MUMIn) для выбора модели моей полной модели glmer:

 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,

cl <- makeCluster(3)
registerDoParallel(cl)
clusterExport(cl,"df.pom.mer")

Я просто попытался использовать функцию pdredge следующим образом:

pdredge(modmer.pom.full,cluster=cl,rank = "AIC")

но нет оценки, напротив, я получил следующий вывод для всех подмоделей:

Warning messages:
1: In eval(expr, envir, enclos) :
  could not find function "glmer" (model 0 skipped)

Я не наблюдал эту проблему, используя функцию параллельного вычисления Dredge. Кажется, что блеск не распознается pdredge, но я не смог найти причину. Я новый пользователь как MUMIn, так и параллельных пакетов, так может ли быть, что я что-то упустил importnat в аргументах pdredge?

Большое спасибо, Хуан

0 ответов

Просто для полноты, как предлагается в комментариях, это отлично работает, если вы либо (1) укажете полное имя (lme4::lmerниже) или (2) используйтеclusterEvalQ(cluster, library(lme4)) чтобы убедиться, что пакет загружен в рабочие.

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)
Другие вопросы по тегам