2017-06-05 136 views
1

我有一个纵向数据集,我在lme4中使用lmer执行HLM分析。我想将此分析的结果与相同数据的结果进行比较,但在nlme包中使用glslmer vs 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似乎对NAS没有问题?我宁愿不会因为被迫排除所有那些缺少数据的参与者而失去所有这些权力,所以如果有某种方法可以指定lmer中处理缺失值的相同方法,gls除外,这是理想的。 (否则我猜想有多个插补?)

回答

2

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

由于您有纵向数据,排除缺失数据的行并不一定等同于排除参与者(但可能意味着您排除了某些参与者的某些观察结果),并根据Snijder和Bosker(2012)不会导致假设数据随机缺失(MAR),则有偏倚的估计。我首先检查缺失数据中可能导致偏见的任何模式,例如因为与缺失数据机制相关的变量不包含在模型中。多重归责可以作为一种选择,但是(取决于具体情况)往往对缓解权力问题的影响不大。