anova.mer Mod(mod_null, mod_eins) :模型并非都适合相同大小的数据集

anova.mer Mod(mod_null, mod_eins) : models were not all fitted to the same size of dataset

我看到有些人也有这个问题,但我真的不明白给出的答案。

我从 "intercept only" 模型开始做了一些线性混合模型。随后我想添加更多变量。当我尝试比较模型时,R 输出为 "models were not all fitted to the same size of dataset"。我需要做什么才能在同一数据集中拟合数据?

R 语法是:

mod_zero <- lmer(quality ~ 1 + (1|subject_id))
summary(mod_zero)
mod_one <- lmer(quality ~ ps + an + int + ch + boredom + (1|subject_id),dat)
summary(mod_one)
anova(mod_zero, mod_one)

添加 na.rm=T 没有帮助。有人有想法吗?

该错误可能是由于第二个模型中的一个或多个预测变量中存在缺失数据造成的。这些观察结果已从第二个模型中删除(从而创建了一个不同的数据集,它是原始数据的一个子集),您无法有意义地比较两个适合不同数据集的模型。要比较这两个模型,您必须将第一个模型拟合到数据集而不丢失 ps、an、int、ch、boredom 上的数据。尝试:

dat2 <- dat[which(complete.cases(dat[,c('ps', 'an', 'int', 'ch', 'boredom')])),]

mod_zero <- lmer(quality ~ 1 + (1|subject_id), dat2)
mod_one <- lmer(quality ~ ps + an + int + ch + boredom + (1|subject_id),dat2) 

anova(mod_zero, mod_one) 

这个错误解决了,但是你应该问问自己为什么会丢失数据。根据缺失数据机制,删除缺失数据可能会使您的结果产生偏差。如果您有大量与结果变量系统相关的缺失数据,这将使您的模型估计产生偏差,您需要研究减少这种偏差的方法(例如多重插补)。 Graham 撰写了很多书籍和文章来解释不同的缺失数据机制和解决方案。比较 mod_zero 在 datdat2 上的输出可能会给出可能存在偏差的第一个迹象(尽管类似的输出并不能确保没有偏差)。