Mac OS 10.9.5,R 3.2.3,MuMIn_1.15.6,lme4_1.1-10
重现example data MuMIn user guide建议使用na.action=na.fail
,否则挖泥功能将无效,我找到了:
挖泥机出错:'global.model'''na.action'参数未设置且options('na.action')为“na.omit”。
但是,当我尝试使用na.action=na.fail
运行glmer模型时,我得到了这个:
na.fail.default中的错误(列表(pr = c(0,0,0,0,0,0,0,0,1,0,1,: 对象中缺少值
除了删除NA的每个观察结果外,我还有其他选择吗?我的完整数据集包含10,000个观测值,并且有23个预测变量,这些变量具有不同观测值的NA。删除NA的每个障碍都会浪费一些数据,我希望避免这些数据。
答案 0 :(得分:2)
很难知道你在问什么。
从?MuMIn::dredge
“必须避免在global.model中使用na.action =”na.omit“(R的默认值)或”na.exclude“,因为它符合子模型的要求对于不同的数据集,如果存在缺失值。如果检测到错误则抛出错误。“
在您的示例中,保留默认options(na.action = na.omit)
可以正常工作:
options()$na.action
mod.na.omit <- glmer(formula = pr ~ yr + soil_dist + sla_raw + yr:soil_dist + yr:sla_raw + (1|plot) + (1|subplot),
data = coldat,
family = binomial)
但是,options(na.action = na.fail)
会导致glmer
失败(正如文档中所预期的那样)。
如果您查看'coldat'中数据的长度,请完成'coldat','mod.na.omit'的案例你得到以下内容:
> # number of rows in coldat
> nrow(coldat)
[1] 3171
> # number of complete cases in coldat
> nrow(coldat[complete.cases(coldat), ])
[1] 2551
> # number of rows in data included in glmer model when using 'na.omit'
> length(mod.na.omit@frame$pr)
[1] 2551
根据您提供的示例数据,使用na.omit时,glmer
包含'coldat'和'coldat'行的完整案例( mod.an.omit@frame)产生相同数量的行,但可以想象,当添加预测变量时,情况可能不再是这种情况(即mod.an.omit@frame中的行数>完整情况冷的)。在这种情况下(如文档所述),由于dredge
生成模型,因此存在子模型适合不同数据集的风险。因此,dredge
不是可能适合子模型,而是采用保守的NA方法,并抛出错误。
因此,您基本上要么必须删除不完整的案例(您指出的是您不想做的事情),要么插入缺失的值。我通常会避免插值,如果有大量的缺失数据会导致估计值充满,而是删除不完整的情况。