glmer 的 MUMIn pdredge 错误
Posted
技术标签:
【中文标题】glmer 的 MUMIn pdredge 错误【英文标题】:MUMIn pdredge error with glmer 【发布时间】:2015-07-27 11:52:00 【问题描述】:我正在尝试使用 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)
我使用非并行计算函数dedge没有观察到这个问题。 pdredge似乎无法识别glmer,但我找不到原因。我是 MUMIn 和并行包的新用户,难道我在 pdredge 参数中遗漏了一些重要的东西吗?
非常感谢,胡安
【问题讨论】:
在?pdredge
->“详情”(第一段)中有解释。
upppsss...非常感谢卡米尔,对此感到抱歉;在问之前我应该三思而后行。解决了。
嗨 - 我在交叉验证中找到了你的帖子 - 对二项分布数据使用非线性混合模型。我现在正在尝试解决相同的问题,想知道您是否在 R 环境中在此主题上取得了任何进展?我只是尝试使用 nlme 包来估计使用混合效应方法的 3 个选择性参数,但遇到残差问题可能是因为我没有考虑对数似然二项式质量函数。
您好 user41509。很抱歉这么晚的回复。天底下没有什么新鲜事,我还没有找到任何可靠的方法来将配对齿轮结构模型(我想我们说的是相同的方法!?)实现为混合模型方法,你目前是什么情况?
【参考方案1】:
为了完整起见,正如 cmets 中所建议的那样,如果您 或者 (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)
【讨论】:
以上是关于glmer 的 MUMIn pdredge 错误的主要内容,如果未能解决你的问题,请参考以下文章
glmer - 使用二项式数据进行预测(cbind 计数数据)
如何绘制新数据的预测与 R 中的 gee、lme、glmer 和 gamm4 相匹配?