我正在使用大型数据集并使用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的参数?我试着查看该功能的帮助页面,但文档非常有限。
谢谢!
答案 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)