我试图使用R运行重复测量的ANOVA。我在各个网站上浏览了多个示例,但他们似乎从未谈论过我遇到的错误。我想我误会了一些重要的东西。
我尝试运行的方差分析是根据使用人工参与的实验得出的一些数据。它具有一个DV和三个IV。所有IV的所有级别都在所有参与者上运行,使其成为三向重复测量/受试者内部方差分析。
我在R中运行的代码如下:
aov.output = aov(DV~ IV1 * IV2 * IV3 + Error(PARTICIPANT_ID / (IV1 * IV2 * IV3)),
data=fulldata)
运行此命令时,收到以下警告:
Error() model is singular
有什么想法我可能做错了吗?
最佳答案
尝试使用lme4软件包中的lmer函数。 aov函数在这里可能不合适。从Dougles Bates寻找参考,例如http://lme4.r-forge.r-project.org/book/Ch4.pdf(其他章节也很出色,但这是重复措施章节,这是简介:http://lme4.r-forge.r-project.org/book/Ch1.pdf)。 R代码位于同一位置,对于纵向数据,如今似乎只适合使用OLS而不是像lme4包或nlme中的方差模型的组件,这似乎被认为是错误的,在我看来最近,lme4的受欢迎程度大大超过了它。您可能会注意到,Brian Ripley在上面的评论部分中引用的帖子只是建议也切换到lme。
顺便说一句,跳车的巨大优势在于,您可以使用典型的语法来获得对每种效果水平的估计,作为对均值的调整:
lmer(DV ~ 1 +IV1*IV2*IV3 +(IV1*IV2*IV3|Subject), dataset))
请注意,您的随机效果将是矢量值。