lmerTest::anova 中的自由度是否正確?它們與 RM-ANOVA 非常不同
我正在分析 R 中的反應時間實驗的結果。
我運行了重複測量方差分析(1 個具有 2 個水平的受試者內因素和 1 個具有 2 個水平的受試者間因素)。我運行了一個類似的線性混合模型,我想用 ANOVA 表的形式總結 lmer 結果
lmerTest::anova
。不要誤會我的意思:我沒想到會得到相同的結果,但是我不確定
lmerTest::anova
結果的自由度。在我看來,它更像是反映了一個在主題級別上沒有聚合的方差分析。我知道在混合效應模型中計算自由度很棘手,但在更新的主題(包)
lmerTest::anova
中被提及為一種可能的解決方案。?pvalues``lme4
這個計算正確嗎?結果
lmerTest::anova
是否正確反映了指定的模型?**更新:**我使個體差異更大。的自由度
lmerTest::anova
與簡單的方差分析有很大不同,但我仍然不確定,為什麼它們對於主體內因素/交互作用如此之大。# mini example with ANT dataset from ez package library(ez); library(lme4); library(lmerTest) # repeated measures ANOVA with ez package data(ANT) ANT.2 <- subset(ANT, !error) # update: make individual differences larger baseline.shift <- rnorm(length(unique(ANT.2$subnum)), 0, 50) ANT.2$rt <- ANT.2$rt + baseline.shift[as.numeric(ANT.2$subnum)] anova.ez <- ezANOVA(data = ANT.2, dv = .(rt), wid = .(subnum), within = .(direction), between = .(group)) anova.ez # similarly with lmer and lmerTest::anova model <- lmer(rt ~ group * direction + (1 | subnum), data = ANT.2) lmerTest::anova(model) # simple ANOVA on all available data m <- lm(rt ~ group * direction, data = ANT.2) anova(m)
上面代碼的結果[更新]:
方差分析
$方差分析
Effect DFn DFd F p p<.05 ges 2 group 1 18 2.6854464 0.11862957 0.1294475137 3 direction 1 18 0.9160571 0.35119193 0.0001690471 4 group:direction 1 18 4.9169156 0.03970473 * 0.0009066868
lmerTest::anova(模型)
Analysis of Variance Table of type 3 with Satterthwaite approximation for degrees of freedom Df Sum Sq Mean Sq F value Denom Pr(>F) group 1 13293 13293 2.6830 18 0.1188 direction 1 1946 1946 0.3935 5169 0.5305 group:direction 1 11563 11563 2.3321 5169 0.1268
方差分析(米)
Analysis of Variance Table Response: rt Df Sum Sq Mean Sq F value Pr(>F) group 1 1791568 1791568 242.3094 <2e-16 *** direction 1 728 728 0.0985 0.7537 group:direction 1 12024 12024 1.6262 0.2023 Residuals 5187 38351225 7394 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我認為這
lmerTest
是正確的,ezanova
在這種情況下是錯誤的。
- 結果
lmerTest
符合我的直覺/理解lmerTest
(Satterthwaite 和 Kenward-Roger)中的兩種不同的計算同意- 他們也同意
nlme::lme
- 當我運行它時,
ezanova
會給出一個警告,我不完全理解,但不應忽視它……重新運行示例:
library(ez); library(lmerTest); library(nlme) data(ANT) ANT.2 <- subset(ANT, !error) set.seed(101) ## for reproducibility baseline.shift <- rnorm(length(unique(ANT.2$subnum)), 0, 50) ANT.2$rt <- ANT.2$rt + baseline.shift[as.numeric(ANT.2$subnum)]
弄清楚實驗設計
with(ANT.2,table(subnum,group,direction))
所以看起來個體
subnum
(個人(anova.ez <- ezANOVA(data = ANT.2, dv = .(rt), wid = .(subnum), within = .(direction), between = .(group))) ## $ANOVA ## Effect DFn DFd F p p<.05 ges ## 2 group 1 18 2.4290721 0.13651174 0.1183150147 ## 3 direction 1 18 0.9160571 0.35119193 0.0002852171 ## 4 group:direction 1 18 4.9169156 0.03970473 * 0.0015289914
在這裡,我得到
Warning: collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
分母 DF 看起來有點古怪(都等於 18):我認為方向和 group:direction 應該更大,可以獨立測試(但如果添加(direction|subnum)
到模型中會更小)?# similarly with lmer and lmerTest::anova model <- lmer(rt ~ group * direction + (1 | subnum), data = ANT.2) lmerTest::anova(model) ## Df Sum Sq Mean Sq F value Denom Pr(>F) ## group 1 12065.7 12065.7 2.4310 18 0.1364 ## direction 1 1952.2 1952.2 0.3948 5169 0.5298 ## group:direction 1 11552.2 11552.2 2.3299 5169 0.1270
這裡的
Df
列指的是分子df,Denom
(倒數第二個)給出了估計的分母df;他們同意古典直覺。更重要的是,對於 F 值,我們也得到了不同的答案……我們還可以用 Kenward-Roger 仔細檢查(非常慢,因為它涉及多次重新擬合模型)
lmerTest::anova(model,ddf="Kenward-Roger")
結果是相同的。
對於這個例子
lme
(來自nlme
包)實際上很好地猜測了適當的分母 df(F 值和 p 值略有不同):model3 <- lme(rt ~ group * direction, random=~1|subnum, data = ANT.2) anova(model3)[-1,] ## numDF denDF F-value p-value ## group 1 18 2.4334314 0.1362 ## direction 1 5169 0.3937316 0.5304 ## group:direction 1 5169 2.3298847 0.1270
direction
如果我適合和subnum
df之間的交互direction
並且group:direction
更小(我原以為他們會是 18 歲,但也許我弄錯了):model2 <- lmer(rt ~ group * direction + (direction | subnum), data = ANT.2) lmerTest::anova(model2) ## Df Sum Sq Mean Sq F value Denom Pr(>F) ## group 1 20334.7 20334.7 2.4302 17.995 0.1364 ## direction 1 1804.3 1804.3 0.3649 124.784 0.5469 ## group:direction 1 10616.6 10616.6 2.1418 124.784 0.1459