首页 > 解决方案 > MuMin 中的 dredge() 函数错误

问题描述

我正在尝试使用 dredge() 函数通过完成变量的每个组合(每个模型最多五个变量)并使用针对小样本量 (AICc) 校正的 AIC 比较模型来评估模型。

但是,我收到一个错误和两个警告消息,如下所示:

固定术语是“(拦截)”警告消息:1:在挖泥机中(MaxN.model,m.min = 2,m.max = 5):比较由 REML 拟合的模型 2:在挖泥机中(MaxN.model,m.min = 2, m.max = 5) : 参数 'm.min' 和 'm.max' 已被弃用,使用 'm.lim' 代替

我尝试按照指定更改为“m.lim”,但出现错误:

疏浚错误(MaxN.model,m.lim = 5):无效的“m.lim”值另外:警告消息:在疏浚中(MaxN.model,m.lim = 5):比较由 REML 拟合的模型

我正在使用的代码是:

MaxN.model<-lme(T_MaxN~Seagrass.cover+composition.pca1+composition.pca2+Sg.Richness+traits.pca1+
              land.use.pc1+land.use.pc2+seascape.pc2+D.landing.site+T_Depth, 
                random=~1|site, data = sgdf, na.action = na.fail, method = "REML")
Dd_MaxN<-dredge(MaxN.model, m.min = 2 , m.max = 5)

我究竟做错了什么?

标签: rmixed-modelsmumin

解决方案


  1. 你没有告诉我们你试图指定什么m.lim?dredge说:

m.lim ...(可选)单个模型中项数的限制'c(lower,upper)'

所以你应该指定一个二元素数值(整数)向量。

  1. 您绝对应该使用method="ML"而不是method="REML". REML 的警告/错误非常严重;比较通过 REML 拟合的具有不同固定效应的模型将导致胡说八道。

所以你应该尝试:

MaxN.model <- lme(..., method = "ML")  ## where ... is the rest of your fit
Dd_MaxN <- dredge(MaxN.model, m.lim=c(2,5))

推荐阅读