lmer 与 gls 中的缺失值

Missing values in lmer vs gls

我有一个纵向数据集,我正在对 lme4 中使用 lmer 执行 HLM 分析。我想将此分析的结果与相同数据但使用 nlme 包中的 gls 的结果进行比较。

数据集中的每个参与者都有多个测量值,并且一些参与者在一个或多个时间点缺少值。

lmer 似乎没有这个问题,但是当我 运行 使用 gls 进行相同的分析时,我收到一条错误消息

Error in na.fail.default(list(id = c(1001L, 1002L, 1003L, 1004L, 1005L,  : 
  missing values in object

所以我有两个问题

(1)lmer如何处理缺失值?

(2) 为什么 gls 需要 0 个缺失值,而 lmer 似乎对 NA 没有问题?我宁愿不要因为被迫排除所有缺少数据的参与者而失去所有权力,所以如果有某种方法可以在 lmer 中指定相同的处理缺失值的方法,但在 gls 中除外会很理想。 (否则我想是多重插补?)

lmer 的默认 na.actionna.omit,这意味着模型中一个或多个变量具有缺失值的任何行都将从数据集中删除。默认操作 ins glsna.fail 这就是为什么 gls 在模型中的任何变量有缺失值时给出错误消息的原因。无论您使用哪种功能,电源问题仍然存在。您可以通过键入 gls(....,na.action = na.omit) 来指定处理缺失数据的相同方法,但在这两种情况下,您都将排除具有缺失数据的行。

由于您拥有纵向数据,因此排除缺少数据的行并不一定等同于排除参与者(但可能意味着您排除了某些参与者的一些观察结果)并且根据 Snijder 和 Bosker(2012 年)的说法并不导致假设数据随机缺失 (MAR) 的有偏估计。我将从检查缺失数据中可能导致偏差的任何模式开始,例如因为与缺失数据机制相关的变量未包含在模型中。多重插补可以是一种选择,但(视情况而定)通常对缓解功效问题作用不大。