在R中检查假设lmer / lme混合模型


25

我进行了重复的设计,在三个不同的任务中测试了30位男性和30位女性。我想了解男性和女性的行为有何不同,以及如何取决于任务。我同时使用了lmer和lme4软件包对此进行了研究,但是,我坚持尝试检查两种方法的假设。我运行的代码是

lm.full <- lmer(behaviour ~ task*sex + (1|ID/task), REML=FALSE, data=dat)
lm.full2 <-lme(behaviour ~ task*sex, random = ~ 1|ID/task, method="ML", data=dat)

通过将其与没有交互的较简单模型进行比较并运行方差分析,我检查了交互是否是最佳模型:

lm.base1 <- lmer(behaviour ~ task+sex+(1|ID/task), REML=FALSE, data=dat)
lm.base2 <- lme(behaviour ~ task+sex, random= ~1|ID/task), method="ML", data=dat)
anova(lm.base1, lm.full)
anova(lm.base2, lm.full2)

问题1:可以在线性混合模型中使用这些分类预测变量吗?
问题2:我是否正确理解结果变量(“行为”)不需要本身正态分布(跨性别/任务)吗?
问题3:如何检查方差的均匀性?对于简单的线性模型,我使用plot(LM$fitted.values,rstandard(LM))。使用plot(reside(lm.base1))足够了吗?
Q4:检查正常使用下面的代码好吗?

hist((resid(lm.base1) - mean(resid(lm.base1))) / sd(resid(lm.base1)), freq = FALSE); curve(dnorm, add = TRUE)

我注意到的一件事是,我使用的lme4版本不是最新版本,因此简单的plot(myModel.lm)无法正常工作,也许这对其他读者有所帮助。
crazjo

Answers:


26

问题1:是-就像任何回归模型一样。

问题2:与一般线性模型一样,您的结果变量不需要作为单变量正态分布。但是,LME模型假定模型的残差是正态分布的。因此,对模型进行转换或增加权重将是解决此问题的一种方法(当然,并通过诊断图进行检查)。

第三季度: plot(myModel.lme)

Q4: qqnorm(myModel.lme, ~ranef(., level=2))。此代码将允许您为每个级别的随机效果制作QQ图。LME模型假设不仅簇内残差是正态分布的,而且随机效应的每个级别也是如此。在level0、1到2之间变化,以便可以检查大鼠,任务和对象内残差。

编辑:我还应该补充一点,尽管假设是正态性,并且转换可能有助于减少非正态错误/随机效应的问题,但尚不清楚所有问题是否都已解决或没有引入偏见。如果数据需要转换,请谨慎估计随机效应。这是解决这个问题的论文。


感谢您的回答。我想共享我的数据集和脚本进行分析,包括输出,以查看我所做的是否确实正确。可以交换堆栈吗?此外,我认为我运行了错误的随机因子(1 | rat / task),难道不是(1 | rat)吗?我在三个任务上测试了60只老鼠(每种性别中的30只)。
crazjo

9
我最近尝试了Q4的代码,但遇到了有关“ S4”类型的对象无法子集化的错误。用于模型的代码是否适合lme软件包?lme4呢?
emudrak 2014年

关于第四季度,制作这些地块的人们需要记住,所产生的每个地块的N值将大大小于总数,因此,地块的可变性会更大。不要期望它们看起来像整体一样呈正态分布。
约翰

14

您似乎对围绕多级模型的假设颇有误解。没有假设数据中方差的均匀性,只是残差应该近似正态分布。分类预测变量始终用于回归(运行ANOVA的R中的基础函数是线性回归命令)。

有关检查假设的详细信息,请查看《皮涅罗和贝茨》一书(第174页,第4.3.1节)。另外,如果您打算使用lme4(本书未写过),则可以使用带有lmer模型的plot (?plot.merMod)复制其图。

要快速检查正常性就是这样qqnorm(resid(myModel))


谢谢你的评论。您是否建议在lme4方法上使用lmer?我是否正确理解响应变量不需要正态分布?我将正确阅读Pinheiro和Bates的书。
crazjo13年

另外,您确定在具有多种因素的混合模型上运行qqnorm(resid(myModel))可行吗?
crazjo

较新的lmer功能具有更多功能和更高的性能。您尝试过qqnorm吗?按照本书开头的建议阅读。
约翰

我最初看起来很奇怪,可能是因为我确实没有最新版的Lmer。感谢您注意到这一点,它现在可以根据需要运行。
crazjo

12

关于第二季度:

根据Pinheiro和Bates的书,您可以使用以下方法:

“该lme函数允许通过一个weights参数对误差内组的异方差进行建模。该主题将在§5.2中详细介绍,但是到目前为止,足以知道 varIdent方差函数结构允许每个级别的不同方差。一个因素,可以用来拟合异方差模型[...]”

皮涅罗和贝茨,第2页。177

如果您想检查两者之间是否存在均方差,sex可以使用以下方法:

plot( lm.base2, resid(., type = "p") ~ fitted(.) | sex,
  id = 0.05, adj = -0.3 )

如果方差不同,则可以通过以下方式更新模型:

lm.base2u <- update( lm.base2, weights = varIdent(form = ~ 1 | sex) )
summary(lm.base2u)

此外,您可能robustlmm还会看看使用称重方法的包装。关于此概念的Koller 博士论文可作为开放访问获得(“线性混合模型的鲁棒估计”)。摘要指出:

“开发了一种新的尺度估计值,即设计自适应尺度估计值,旨在为后续的稳健测试提供良好的基础。它通过均衡残差的自然异方差并调整尺度本身的稳健估计方程来实现。这些设计自适应校正对于小样本设置至关重要,在这种情况下,观察次数可能只是要估计的参数数目的五倍或更少。”



我没有足够的意见要发表。但是,我认为有必要澄清上述@John的回答的某些方面。皮涅罗和贝茨陈述第p。174:

假设1 –组内误差是独立的并且正态分布相同,均值为零,方差为σ2,并且独立于随机效应。

这个陈述对于均质方差确实不是很清楚,我对统计数据还不够深入,无法了解LME概念背后的所有数学原理。但是,在第。在第175节第4.3.1节中,关于假设1的部分中写道:

在本节中,我们集中于评估组内误差呈正态分布,以零为中心且方差恒定的假设的方法。

同样,在以下示例中,“ 恒定方差 ”确实很重要。因此,当他们在p上写“ 相同的正态分布” 时,可以推测它们是否暗示均方差。174,但没有直接解决。


-6

Q1:是的,为什么不呢?

Q2:我认为要求是错误是正态分布的。

Q3:可以用例如Leven的测试进行测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.