我有一个混合模型,数据看起来像这样:
> head(pce.ddply)
subject Condition errorType errors
1 j202 G O 0.00000000
2 j202 G P 0.00000000
3 j203 G O 0.08333333
4 j203 G P 0.00000000
5 j205 G O 0.16666667
6 j205 G P 0.00000000
每个主题为errorType(O或P)提供两个数据点,每个主题在条件G(N = 30)或N(N = 33)中。 errorType是重复变量,Condition是变量之间的变量。我对主要效果和互动感兴趣。所以,首先是anova:
> summary(aov(errors ~ Condition * errorType + Error(subject/(errorType)),
data = pce.ddply))
Error: subject
Df Sum Sq Mean Sq F value Pr(>F)
Condition 1 0.00507 0.005065 2.465 0.122
Residuals 61 0.12534 0.002055
Error: subject:errorType
Df Sum Sq Mean Sq F value Pr(>F)
errorType 1 0.03199 0.03199 10.52 0.001919 **
Condition:errorType 1 0.04010 0.04010 13.19 0.000579 ***
Residuals 61 0.18552 0.00304
条件不重要,但是errorType和交互一样。
然而,当我使用lmer时,我会得到一组完全不同的结果:
> lmer(errors ~ Condition * errorType + (1 | subject),
data = pce.ddply)
Linear mixed model fit by REML
Formula: errors ~ Condition * errorType + (1 | subject)
Data: pce.ddply
AIC BIC logLik deviance REMLdev
-356.6 -339.6 184.3 -399 -368.6
Random effects:
Groups Name Variance Std.Dev.
subject (Intercept) 0.000000 0.000000
Residual 0.002548 0.050477
Number of obs: 126, groups: subject, 63
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.028030 0.009216 3.042
ConditionN 0.048416 0.012734 3.802
errorTypeP 0.005556 0.013033 0.426
ConditionN:errorTypeP -0.071442 0.018008 -3.967
Correlation of Fixed Effects:
(Intr) CndtnN errrTP
ConditionN -0.724
errorTypeP -0.707 0.512
CndtnN:rrTP 0.512 -0.707 -0.724
因此,对于lmer,Condition和交互是重要的,但errorType不是。
此外,lmer结果与glm结果完全相同,让我相信出了问题。
有人可以帮助我理解为什么他们如此不同?我怀疑我错误地使用了lmer(虽然我尝试了许多其他版本,如(errorType | subject),但结果相似。
答案 0 :(得分:3)
我认为答案是两种方法都采用不同的方法来处理方差。 ANOVA划分方差,而组(重复测量)变量只是这样做的另一个考虑因素。 ANOVA假设群体方差或同方差性的同质性,如果这种假设被严重违反,ANOVA可能不是正确的方法。
另一方面,Lmer本质上是多级建模的函数。在多级框架中,您可以显式建模方差,引入固定和随机效果之间的区别(基本上是方差)。异方差性在这里不是问题。另一种看待它的方法是ANOVA采用无池方法(每条线是分开的),Lmer采用部分池方法(线共享一些信息)。
此外,ANOVA使用OLS估计,而lmer使用ML版本(在您的情况下为REML)。
这是我能解释的最好的,这应该足以让你在自己的问题研究中找到正确的方向。但是,对于更精细的答案,您可能确实想在CrossValidated上提出问题。
答案 1 :(得分:1)
产生差异的另一个原因是,当您使用lmer(与您的场景描述一致)时,您将errorType视为固定效果,但是作为嵌套在aov()代码中的subject中的随机效果
我相信你的lmer()调用的结果,而不是你的aov()调用的结果。如果您在这里查看过,请尝试重新运行您的aov作为aov(错误〜条件*错误类型+错误(主题),data = pce.ddply)。由于您的设计接近平衡,我希望aov()会给出与lmer()类似的估计值。