Both an ANOVA and mixed modeling approach will work for your data. I am more familiar with mixed models, and can speak better to that. However, you are correct that you can run your analysis as a mixed model and then get an ANOVA table afterward. If you are using R, then you can use lmer
to first estimate the mixed model:
require(lme4)
m <- lmer(outcome ~ trtmt + (1|Subject), data=df)
The above model will give you the mean outcome difference between treatment and non-treatment individuals while properly accounting for the correlated outcome scores from the same individual. If you wanted the ANOVA table based on this model, you can use anova(m)
to get that.
It is worth noting that the mixed model, as with any statistical model, is only valid under certain assumptions, many of which are the same assumptions as regression. Among these are the normality of the residuals, which can be examined as such:
residm <- resid(m) #grab L1 residuals
qqnorm(residm) #graphing to check normality assumption
Also important with the residuals is the homogeneity of variance assumption, which you can inspect visually, looking for the absence of any pattern in the residual vs. fitted plot using plot(m)
.
Mixed models impose a normal distribution on the random intercepts, i.e., (1|Subject)
in the lmer
syntax above. You can look to see whether the predicted intercepts do a decent enough job of following a normal distribution using the following code: plot(ranef(m))
.