所以这是一个冰雹玛丽,但我希望有人在这里遇到过这个。我最近从SPSS切换到R,现在我正在尝试进行混合模型ANOVA。由于我对我的R技能没有信心,我在SPSS中使用完全相同的数据集来比较我的结果。
我有一个
的数据集dv = RT
内=会话(2级),提示(3级),侧卫(2级)
=组(3级)。
没有协变量。
每组人数参与人数不等(25,25,23)
在R中,我使用ezAnova软件包来完成混合模型anova:
results <- ezANOVA(
data = ant_rt_correct
, wid = subject
, dv = rt
, between = group
, within = .(session, cue, flanker)
, detailed = T
, type = 3
, return_aov = T
)
在SPSS中,我使用以下GLM:
GLM rt.1.center.congruent rt.1.center.incongruent rt.1.no.congruent rt.1.no.incongruent
rt.1.spatial.congruent rt.1.spatial.incongruent rt.2.center.congruent rt.2.center.incongruent
rt.2.no.congruent rt.2.no.incongruent rt.2.spatial.congruent rt.2.spatial.incongruent BY group
/WSFACTOR=session 2 Polynomial cue 3 Polynomial flanker 2 Polynomial
/METHOD=SSTYPE(3)
/EMMEANS=TABLES(group*session*cue*flanker)
/PRINT=DESCRIPTIVE
/CRITERIA=ALPHA(.05)
/WSDESIGN=session cue flanker session*cue session*flanker cue*flanker session*cue*flanker
/DESIGN=group.
结果很好,即:
R:会话F(1,70)= 46.123 p = .000
SPSS:会话F(1,70)= 46.123 p = .000
我还要求使用每个单元格的方法:
descMeans <- ezStats(
data = ant_rt_correct
, wid = subject
, dv = rt
, between = group
, within = .(session, cue, flanker) #,cue,flanker)
, within_full = .(location,direction)
, type = 3
)
这又与SPSS的描述完全一致,例如:对于细胞:
组(1) - 会话(1) - 提示(中) - 侧卫(1)
R:M = 484.22
SPSS:M = 484.22
但是,当我尝试使用emmeans软件包达到估计的边际均值时:
eMeans <- emmeans(results$aov, ~ group | session | cue | flanker)
与SPSS GLM输出中的Estimated Marginal Means表(对于相同的交互)相比,我遇到了差异,例如:
组(1) - 会话(1) - 提示(中) - 侧卫(1)
R:M = 522.5643
SPSS:M = 484.22
我的理解是,估计的边际均值应该与本案例中的描述性手段相同,因为我没有包括任何协变量。我错了吗?如果是这样,为什么这两个会给出不同的结果呢?
由于组大小不平衡,我还在制作相同大小的组后重新进行上述分析。在那种情况下,emmeans成了:
组(1) - 会话(1) - 提示(中) - 侧卫(1)
R:M = 521.2954
SPSS:M = 482.426
因此,即使在两种情况下都具有相同的群体规模,我最终也会采用完全不同的手段。请记住,SPSS和R之间的其他统计数据和描述性手段相同。我错过了什么??
谢谢!
修改
情节变浓..如果我使用AFEX包执行ANOVA:
results <- aov_ez(
"subject"
,"rt"
,ant_rt_correct
,between=c("group")
,within=c("session", "cue", "flanker")
)
)
然后再次采取emmeans:
eMeans <- emmeans(results, ~ group | session | cue | flanker)
我突然得到的价值更接近SPSS(以及描述性手段)
组(1) - 会话(1) - 提示(中) - 侧卫(1)
R:M = 484.08
SPSS:M = 484.22
所以也许ezANOVA在某个地方做了一些可疑的事情?
答案 0 :(得分:0)
我建议你试试这个:
library(lme4) ### I'm guessing you need to install this package first
mod <- lmer(rt ~ session + cue + flanker + (1|group),
data = ant_rt_correct)
library(emmeans)
emm <- emmeans(mod, ~ session * cue * flanker)
pairs(emm, by = c("cue", "flanker") # simple comparisons for session
pairs(emm, by = c("session", "flanker") # simple comparisons for cue
pairs(emm, by = c("session", "cue") # simple comparisons for flanker
这适合混合模型,每组有随机截距。它使用REML估计,这很可能是SPSS使用的。
相比之下,ezANOVA
适合固定效应模型(根本不在因素范围内),aov_ez
使用aov
函数产生忽略块间效应的分析。这些对于不平衡的数据尤其有用。
另一种方法是使用afex::mixed
,实际上使用lme4::lmer
来适应模型。