R中的双向重复测量方差分析

Two-way repeated measures ANOVA in R

我一直在尝试在 R 中对一个虚构的数据集进行双向重复测量方差分析以学习统计数据。我以前问过这个问题,但我不得不调整我的数据集,因为我犯了一些关键错误。它代表两名学生,他们在两年内对两个测试变体的测试进行了评分。尽管练习应该很简单,但我不断收到错误消息。这是我的数据集:

   ID   Score   Time  Group
  <fct> <int>  <fct>  <fct>
   1    10      1       1
   1    15      2       1
   2     2      1       1
   2     5      2       1
   3     7      1       1
   3     8      2       1
   4     6      1       2
   4     8      2       2
   5     9      1       2
   5     4      2       2
   6     3      1       2
   6    12      2       2

我试过几种方法:

aov<- df %>% anova_test(Score~ Time*Group+ Error(ID/(Time*Group)))

ezANOVA(
  data = df, dv = Score, wid = ID,
  within = .(Time, Group), type = 3)

resaov <- anova_test(
  data = df, dv = Score, wid = ID,
  within = c(Time, Group))

我收到的错误信息是:

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
  0 (non-NA) cases

我应该以不同的方式格式化我的数据吗?如果是这样,它应该看起来如何?

问题是 是一个 between-subject 因素(每个 ID 要么在组 1 中,要么在组 2 中,但不在两者中),但你威胁它作为within-subject 方差分析调用中的因素。错误消息告诉您指定设计的数据不完整。

如果您将 Group 的设计指定为 between-factor。

#packages
library(tidyr)
library(ez)
library(rstatix)

#create your data frame (with random Score values)
df <- tibble(ID = as.factor(rep(1:6, each = 2)),
             Score = sample(1:15, 12, replace = TRUE),
             Time = as.factor(rep(1:2, times = 6)),
             Group = as.factor(rep(1:2, each = 6)))
#ezANOVA
ezANOVA(
  data = df, dv = Score, wid = ID,
  within = Time, between = Group, type = 3)

$ANOVA
      Effect DFn DFd         F         p p<.05        ges
2      Group   1   4 0.1290323 0.7375971       0.02787456
3       Time   1   4 4.1290323 0.1119574       0.10289389
4 Group:Time   1   4 0.5806452 0.4885138       0.01587302
#anova_test #1
anova_test(data = df, formula = Score ~ Time*Group + Error(ID/Time))
ANOVA Table (type II tests)

      Effect DFn DFd     F     p p<.05   ges
1      Group   1   4 0.129 0.738       0.028
2       Time   1   4 4.129 0.112       0.103
3 Group:Time   1   4 0.581 0.489       0.016
#anova_test #2
df %>% anova_test(Score~ Time*Group+ Error(ID/Time))

ANOVA Table (type II tests)

      Effect DFn DFd     F     p p<.05   ges
1      Group   1   4 0.129 0.738       0.028
2       Time   1   4 4.129 0.112       0.103
3 Group:Time   1   4 0.581 0.489       0.016