我大体上同意Ben的分析,但让我补充一些观点和一些直觉。
一,总体效果:
- 使用Satterthwaite方法的lmerTest结果正确
- Kenward-Roger方法也是正确的,并且与Satterthwaite一致
Ben概述了subnum
嵌套在group
其中direction
并group:direction
与之交叉的设计subnum
。这意味着的自然误差项(即所谓的“封闭误差层”)为group
,subnum
而其他项(包括subnum
)的封闭误差层为残差。
这种结构可以用所谓的因子结构图表示:
names <- c(expression("[I]"[5169]^{5191}),
expression("[subnum]"[18]^{20}), expression(grp:dir[1]^{4}),
expression(dir[1]^{2}), expression(grp[1]^{2}), expression(0[1]^{1}))
x <- c(2, 4, 4, 6, 6, 8)
y <- c(5, 7, 5, 3, 7, 5)
plot(NA, NA, xlim=c(2, 8), ylim=c(2, 8), type="n", axes=F, xlab="", ylab="")
text(x, y, names) # Add text according to ’names’ vector
# Define coordinates for start (x0, y0) and end (x1, y1) of arrows:
x0 <- c(1.8, 1.8, 4.2, 4.2, 4.2, 6, 6) + .5
y0 <- c(5, 5, 7, 5, 5, 3, 7)
x1 <- c(2.7, 2.7, 5, 5, 5, 7.2, 7.2) + .5
y1 <- c(5, 7, 7, 3, 7, 5, 5)
arrows(x0, y0, x1, y1, length=0.1)
在这里,随机项被括在方括号中,0
代表整体均值(或截距),[I]
代表误差项,上标数字是等级的数量,下标数字是假设平衡设计的自由度的数量。该图表明该天然误差项(包封误差层)为group
是subnum
,并且分子DF为subnum
,它等于分母为DF group
,是18:20减去1 DF为group
和1个DF的整体平均值。有关因子结构图的更全面介绍,请参见此处的第2章:https : //02429.compute.dtu.dk/eBook。
如果数据完全平衡,我们将能够根据提供的SSQ分解构建F检验anova.lm
。由于数据集非常接近平衡,我们可以按以下方式获得近似的F检验:
ANT.2 <- subset(ANT, !error)
set.seed(101)
baseline.shift <- rnorm(length(unique(ANT.2$subnum)), 0, 50)
ANT.2$rt <- ANT.2$rt + baseline.shift[as.numeric(ANT.2$subnum)]
fm <- lm(rt ~ group * direction + subnum, data=ANT.2)
(an <- anova(fm))
Analysis of Variance Table
Response: rt
Df Sum Sq Mean Sq F value Pr(>F)
group 1 994365 994365 200.5461 <2e-16 ***
direction 1 1568 1568 0.3163 0.5739
subnum 18 7576606 420923 84.8927 <2e-16 ***
group:direction 1 11561 11561 2.3316 0.1268
Residuals 5169 25629383 4958
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
在这里,所有F和p值都是在假定所有项都具有残差作为其包围误差层的情况下计算的,除“组”以外的所有情况均是如此。组的“平衡正确” F测试改为:
F_group <- an["group", "Mean Sq"] / an["subnum", "Mean Sq"]
c(Fvalue=F_group, pvalue=pf(F_group, 1, 18, lower.tail = FALSE))
Fvalue pvalue
2.3623466 0.1416875
在这里我们使用subnum
MS而不是F值分母中的Residuals
MS 。
请注意,这些值与Satterthwaite结果非常匹配:
model <- lmer(rt ~ group * direction + (1 | subnum), data = ANT.2)
anova(model, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12065.3 12065.3 1 18 2.4334 0.1362
direction 1951.8 1951.8 1 5169 0.3936 0.5304
group:direction 11552.2 11552.2 1 5169 2.3299 0.1270
剩余的差异是由于数据没有完全平衡。
该OP比较anova.lm
有anova.lmerModLmerTest
,这是好的,但要像我们一样必须使用相同的反差对比。在这种情况下,两者之间存在差异anova.lm
,anova.lmerModLmerTest
因为它们默认情况下分别产生I型和III型测试,并且对于此数据集,I型和III型对比之间存在(小的)差异:
show_tests(anova(model, type=1))$group
(Intercept) groupTreatment directionright groupTreatment:directionright
groupTreatment 0 1 0.005202759 0.5013477
show_tests(anova(model, type=3))$group # type=3 is default
(Intercept) groupTreatment directionright groupTreatment:directionright
groupTreatment 0 1 0 0.5
如果数据集已完全平衡,则I型对比度将与III型对比度相同(不受观察到的样本数量的影响)。
最后一点是,Kenward-Roger方法的“慢度”不是由于模型重新拟合,而是因为它涉及使用观测值/残差的边际方差-协方差矩阵(在这种情况下为5191x5191)进行计算,而不是Satterthwaite方法的案例。
关于模型2
至于model2,情况变得更加复杂,我认为从另一个模型开始讨论会比较容易,在该模型中我包括了subnum
和之间的“经典”交互direction
:
model3 <- lmer(rt ~ group * direction + (1 | subnum) +
(1 | subnum:direction), data = ANT.2)
VarCorr(model3)
Groups Name Std.Dev.
subnum:direction (Intercept) 1.7008e-06
subnum (Intercept) 4.0100e+01
Residual 7.0415e+01
因为与交互相关的方差本质上为零(在存在subnum
随机主效应的情况下),所以交互项对分母自由度,F值和p值的计算没有影响:
anova(model3, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12065.3 12065.3 1 18 2.4334 0.1362
direction 1951.8 1951.8 1 5169 0.3936 0.5304
group:direction 11552.2 11552.2 1 5169 2.3299 0.1270
但是,包subnum:direction
络错误层是,subnum
因此如果我们删除subnum
所有关联的SSQ,subnum:direction
model4 <- lmer(rt ~ group * direction +
(1 | subnum:direction), data = ANT.2)
现在对于天然误差项group
,direction
和group:direction
是
subnum:direction
与nlevels(with(ANT.2, subnum:direction))
= 40和四个参数对于那些术语分母自由度应为约36:
anova(model4, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 24004.5 24004.5 1 35.994 4.8325 0.03444 *
direction 50.6 50.6 1 35.994 0.0102 0.92020
group:direction 273.4 273.4 1 35.994 0.0551 0.81583
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
这些F检验也可以用“平衡正确的” F检验近似:
an4 <- anova(lm(rt ~ group*direction + subnum:direction, data=ANT.2))
an4[1:3, "F value"] <- an4[1:3, "Mean Sq"] / an4[4, "Mean Sq"]
an4[1:3, "Pr(>F)"] <- pf(an4[1:3, "F value"], 1, 36, lower.tail = FALSE)
an4
Analysis of Variance Table
Response: rt
Df Sum Sq Mean Sq F value Pr(>F)
group 1 994365 994365 4.6976 0.0369 *
direction 1 1568 1568 0.0074 0.9319
group:direction 1 10795 10795 0.0510 0.8226
direction:subnum 36 7620271 211674 42.6137 <2e-16 ***
Residuals 5151 25586484 4967
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
现在转向model2:
model2 <- lmer(rt ~ group * direction + (direction | subnum), data = ANT.2)
该模型描述了一个具有2x2方差-协方差矩阵的相当复杂的随机效应协方差结构。默认参数化不容易处理,我们最好对模型进行重新参数化:
model2 <- lmer(rt ~ group * direction + (0 + direction | subnum), data = ANT.2)
如果我们比较model2
到model4
,他们有同样多的随机效应; 每个2个subnum
,即总计2 * 20 = 40。虽然model4
为所有40个随机效应规定了一个方差参数,但model2
规定每subnum
对随机效应均具有带有2x2方差-协方差矩阵的双变量正态分布,其参数由下式给出:
VarCorr(model2)
Groups Name Std.Dev. Corr
subnum directionleft 38.880
directionright 41.324 1.000
Residual 70.405
这表明过拟合,但我们将其保存另一天。这里很重要的一点是,model4
是一个特殊的情况model2
,并认为model
是也是一个特例model2
。松散(直观)地(direction | subnum)
包含或捕获与主要效果subnum
以及交互作用相关的变化direction:subnum
。在随机效应方面,我们可以将这两种效应或结构视为分别捕获行与逐列之间的变化:
head(ranef(model2)$subnum)
directionleft directionright
1 -25.453576 -27.053697
2 16.446105 17.479977
3 -47.828568 -50.835277
4 -1.980433 -2.104932
5 5.647213 6.002221
6 41.493591 44.102056
在这种情况下,这些随机效应估计以及方差参数估计都表明我们实际上仅具有subnum
此处出现的(行之间的变异)随机主效应。这一切导致了Satterthwaite分母的自由度
anova(model2, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12059.8 12059.8 1 17.998 2.4329 0.1362
direction 1803.6 1803.6 1 125.135 0.3638 0.5475
group:direction 10616.6 10616.6 1 125.136 2.1418 0.1458
是在这些主要效果和交互结构之间的折衷:DenDF组保持在18(subnum
按设计嵌套),而direction
and
group:direction
DenDF在36(model4
)和5169(model
)之间是折衷的。
我认为这里没有任何迹象表明Satterthwaite近似(或其在lmerTest中的实现)是错误的。
Kenward-Roger方法的等效表给出
anova(model2, type=1, ddf="Ken")
Type I Analysis of Variance Table with Kenward-Roger's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12059.8 12059.8 1 18.000 2.4329 0.1362
direction 1803.2 1803.2 1 17.987 0.3638 0.5539
group:direction 10614.7 10614.7 1 17.987 2.1414 0.1606
毫不奇怪,KR和Satterthwaite可以不同,但是出于所有实际目的,p值的差异很小。我上面的分析表明,DenDF
for direction
和group:direction
应该不小于〜36,并且可能大于给定值,因为我们基本上只具有direction
present 的随机主效应,因此,如果有任何发现,我认为这表明KR方法变得DenDF
太低在这种情况下。但是请记住,数据并不真正支持该(group | direction)
结构,因此比较有点人为-如果实际支持该模型会更有趣。
ezAnova
警告,因为实际上您的数据来自2x2x2设计,因此您不应运行2x2方差分析。