我正在从事因子分解方差分析的Open Stats Lab活动,并在GitHub上发布了我的分析结果。
一旦进行了重要的互动,如何在R中进行简单效果测试?
混合设计不平衡如下:
我导入了数据并将其转换为长格式。
library(broom)
library(car)
library(nlme)
library(tidyverse)
> zhang_long[, 1:4]
# A tibble: 260 x 4
condition subject_id extra_time extra_rating
<fct> <fct> <fct> <dbl>
1 ordinary 1 t1_extra 1
2 ordinary 2 t1_extra 3
3 ordinary 3 t1_extra 1
4 ordinary 4 t1_extra 1
5 ordinary 5 t1_extra 5
6 ordinary 6 t1_extra 2
7 ordinary 7 t1_extra 2
8 ordinary 8 t1_extra 3
9 ordinary 9 t1_extra 4
10 ordinary 10 t1_extra 6
# ... with 250 more rows
由于这是一项练习活动,因此我可以针对已发表的论文测试我的分析。我能够使用car::Anova
和nlme::lme
计算适当的 F 值。
# Create linear mixed-effects model
extra_lme <- lme(extra_rating ~ condition*extra_time, random = ~1|subject_id,
data = zhang_long)
# Print ANOVA summary using type III sum of squares
options(contrasts = c("contr.sum", "contr.poly"))
Anova(extra_lme, type = "III")
但是现在我被困住了。如何对时间与条件之间的相互作用进行简单效果测试?
我试图按条件对数据进行子集化。
# Split data by condition
ordinary <- zhang_long %>% filter(condition == "ordinary")
# Simple-effects test
Anova(lme(extra_rating ~ extra_time, random = ~1|subject_id, data = ordinary), type = "III")
这使我非常接近论文中报道的 F 值,即F(1, 128)= 39.86 。
Analysis of Deviance Table (Type III tests)
Response: extra_rating
Chisq Df Pr(>Chisq)
(Intercept) 610.25 1 < 2.2e-16 ***
extra_time 37.81 1 7.797e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我在做什么错了?
我将脚本和Rmarkdown文档上传到GitHub。任何帮助将不胜感激!