处理丢失的数据 - lme4 包中的 glmer

机器算法验证 缺失数据 lme4-nlme
2022-03-28 14:53:02

我有一个不平衡的数据集/缺失值的数据集,由 20 个潜水式声学接收器组成,这些接收器已经在 8 天进行了范围测试(接收器 ID 和 Day 在我的模型中都被视为随机效应)。我的目标是测试多个环境变量对这些接收器检测范围的影响。不幸的是,由于技术问题,无法每天测试5个接收机(例如2天不能测试2个接收机,1天不能测试3个接收机)。

什么是正确的方法?我有 2 个选择:1)减少数据集(排除所有未每天测试的接收器),或 2)使用完整的数据集,包括缺失值。

第一个选择很容易,但可能不是最佳选择(据我在线阅读)。此外,收集的数据将被丢弃。然而,第二种选择似乎更难处理。我读到 lme4 包中的 glmm 可以处理缺失值,但是,它唯一做的就是自动排除所有包含 NA 的行。

因此,假设我选择了第二个选项,并让模型以自动删除的缺失值运行。这将如何影响假设检验?换句话说,p 值的解释是否与平衡设计一样简单?

[编辑:我制定了完整的数据分析,排除了我的硕士项目的那些接收器,以保持平衡的数据集,但是对于出版物,我想使用第二种选择来分析我的数据,因为我认为这是一个更好的选择. 据我所知,围绕这个主题的文献不多,因此我在这个论坛上发帖。]

2个回答

将我的评论变成答案,因为他们似乎已经回答了您的问题...

只需排除实际缺失的数据。如果你用ID, Day, environmental variables,列来格式化你的数据response,那么一切都应该没问题,只需要忽略某一天某个 ID 缺少测量值的行,仍然保留这些 ID 上的其他测量值。

对于推理,您将使用自举估计获得最佳准确性(lme4::confint()效果method = "boot"很好——您需要安装boot软件包才能使其正常工作)。如果您想了解更多信息,我推荐 Faraway 的用 R 扩展线性模型,第 8.2 节。自 Faraway 的书印刷以来,该lme4软件包已进行了相当大的更新,您可以查看随附的过渡指南当然,原则保持不变。

您必须在模型中创建一个指示变量作为控制:1 表示缺失日的声学接收器,0 表示完整数据。在所有观察到和未观察到的日子里重复相同的声学接收器的代码(在宽格式数据库中,在转换为长格式之前)。您可以为任何缺失的一天或每个缺失的一天单独或分组您认为重要的天进行一个指标变量。如果指示变量没有统计显着性,则缺失数据对模型来说并不重要,但统计显着性表明非观察是由于您的因变量造成的,反之亦然。