来自lmerTest的rand():如何处理缺失的值?

时间:2017-07-17 23:41:10

标签: r random lme4 lmertest

我正在使用大型数据集并使用R包lme4分析连续因变量和线性混合效应模型。我也使用扩展lmerTest,它允许计算各种图和与固定和随机项相关的p值。

当我运行rand()以获得与每个随机项相关联的p值时,我得到以下错误:

Error in anova.merMod(object = object, ... = ...) : models were not all fitted to the same size of dataset

这是因为我的一个随机术语包含缺失值,而其他术语则没有。

我的问题是:在rand函数中,我该如何处理数据集大小的差异?是否存在允许自动省略NA的参数?我试着查看该功能的帮助页面,但文档非常有限。

谢谢!

1 个答案:

答案 0 :(得分:1)

以下是使用lmerTest包中的数据示例的示例。在示例中,我们希望运行此代码

library(lmerTest)
m <- lmer(Preference ~ sens2+Homesize+(1+sens2|Consumer), data=carrots)
rand(m)

首先,我们确定哪些变量可用于最大的模型。我使用下面tidyverse的管道和函数,但您可以使用with执行相同操作。完整模型中的所有变量都应该包含在这里

cc <- carrots %>% select(Preference, sens2, Homesize, Consumer) %>% complete.cases()

cc现在包含一个逻辑向量,其中包含完整的观察集。这些是我们在整个分析过程中应该使用的。我们通过添加subset参数

来确保这是真的
m <- lmer(Preference ~ sens2+Homesize+(1+sens2|Consumer), subset=cc, data=carrots)