Трудно понять, о чем вы спрашиваете.
From ?MuMIn::dredge
"Следует избегать использования na.action =" na.omit "(R по умолчанию) или" na.exclude "в global.model, поскольку это приводит к подмоделям, подходящим для разных наборов данных, если есть отсутствуют значения. При обнаружении выдается ошибка "
В вашем примере, оставив значение по умолчанию 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
На основе предоставленных вами примеров данных завершите случаи 'coldat' и строки 'coldat', включенные glmer
при использовании na.omit (mod.an.omit@frame ) дают такое же количество строк, но возможно, что по мере добавления предикторов это может больше не иметь места (то есть количество строк в mod.an.omit@frame> полные случаи coldat). В этом сценарии (как указано в документации) существует риск подгонки подмоделей к различным наборам данных, поскольку dredge
генерирует модели. Таким образом, вместо потенциально подходящей подмодели dredge
использует консервативный подход к NA и выдает ошибку.
Итак, вам в основном нужно либо удалить неполные случаи (которые вы указали, это то, что вы не хотите делать), либо интерполировать отсутствующие значения. Я обычно избегаю интерполяции, если есть большие блоки отсутствующих данных, которые затрудняют оценку значения, и вместо этого удаляю неполные случаи.
person
Peter K
schedule
29.02.2016