Для повторного измерения ановой фазы вам нужны полные наблюдения для каждой временной точки, до и после лечения, перед тем, как делать анову, всегда полезно проверить наблюдения:
tab = table(mydata$time,mydata$treatment,mydata$id)
#subject = 1
tab[,,"1"]
control2 treat2
1 1 0
2 1 0
3 1 0
4 1 0
5 1 0
6 1 0
7 1 0
8 0 0
Так что у этого субъекта есть только контрольные 2 наблюдения, но без лечения 2 наблюдения. Если что-то не так с вводом темы, пожалуйста, исправьте это. Ниже я могу показать вам пример того, когда он будет работать:
test = expand.grid(id=1:2,time=1:8,treatment=c("a","b"))
test$outcome=rnorm(nrow(test))
table(test$time,test$treatment,test$id)
, , = 1
a b
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 1 1
, , = 2
a b
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 1 1
anova_test(data=test,dv=outcome,wid=id,within=c("treatment","time"))
ANOVA Table (type III tests)
Effect DFn DFd F p p<.05 ges
1 treatment 1 1 424.283 0.031 * 0.078
2 time 7 7 1.596 0.276 0.422
3 treatment:time 7 7 1.571 0.283 0.422
Если ваш набор данных таков, согласно формуле, которую вы предоставили в комментарии aov(outcome ~ time*treatment + Error(id), data = mydata)
, это смешанная анова, но для этого вам нужны лица, которые прошли как лечение, так и контроль, чтобы контролировать индивидуальный эффект, а это отсутствует в вашем наборе данных.
Единственная анова, которую вы можете выполнить в этой ситуации, - это двусторонняя анова:
anova_test(data=test,dv=outcome,between=c(time,treatment))
Coefficient covariances computed by hccm()
ANOVA Table (type II tests)
Effect DFn DFd F p p<.05 ges
1 time 7 16 1.668 0.187 0.422
2 treatment 1 16 1.350 0.262 0.078
3 time:treatment 7 16 1.668 0.187 0.422