我有一个纵向数据集,正在使用 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.action
为 na.omit
,这意味着在一个或多个变量上缺少值的任何行模型中的内容从数据集中删除。 gls
中的默认操作是 na.fail
,这就是为什么当模型中的任何变量缺少值时 gls
会给出错误消息。无论您使用哪种功能,电源问题仍然存在。您可以通过键入 gls(....,na.action = na.omit)
来指定处理丢失数据的相同方法,但在这两种情况下,您都会排除丢失数据的行。
由于您有纵向数据,排除缺失数据的行并不一定等于排除参与者(但可能意味着您排除了某些参与者的某些观察结果),并且根据 Snijder 和 Bosker (2012) 的说法,不会导致偏见假设数据随机丢失 (MAR) 的估计。我将首先检查缺失数据中可能导致偏差的任何模式,例如因为与缺失数据机制相关的变量没有包含在模型中。多重插补可以是一种选择,但(取决于具体情况)通常对缓解权力问题作用不大。
关于r - lmer 与 gls 中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44360772/