我遇到了类似的问题:
以下是我的数据框的示例:
Participant Visual Audio StimCondition Accuracy
1 Bottom Circle 1st 2 Central Beeps AO2 0.92
1 SIM Circle Left Beep AO2 0.86
2 Bottom Circle 1st 2 Central Beeps CT4 0.12
2 SIM Circle Left Beep CT4 0.56
我有3个视觉条件,5个音频条件& 5 StimConditions& 12名参与者接触了所有条件。
当我运行以下ezANOVA时:
Model <- ezANOVA(data = Shaped.means, dv = .(Accuracy), wid = .(Participant), within = .(Visual, Audio, StimCondition), type = 3, detailed = TRUE)
我得到与上面链接问题相同的错误。我尝试将Type更改为等于1,它确实返回输出但减去球形度测试。
我已尝试将解决方案应用于我的数据集中的链接问题,但由于我的格式为长格式,因此我有点想知道我需要做些什么来实现所需的统计数据。
我会继续玩它,但如果有人能帮忙的话,我会非常感激。
感谢。
答案 0 :(得分:2)
关注相关问题后,您不必进行太多改动。假设您的数据集与您描述的完全一致,则以下内容适用于您。
让我们首先创建一个数据集来反映您的描述
set.seed(123) ## make reproducible
N <- 12 ## number of Participants
S <- 5 ## number of StimCondition groups
V <- 3 ## number of Visual groups
A <- 5 ## number of Audio groups
Accuracy <- abs(round(runif(N*V*S*A), 2)) ## (N x (PxQ))-matrix with voltages
init.Df <- expand.grid(Participant=gl(N,1),
Visual=gl(V, 1),
Audio=gl(A, 1),
StimCondition=gl(S,1))
df <- cbind(init.Df, Accuracy)
现在我们有一个具有3个视觉条件的数据帧,5个音频条件&amp; 5 StimConditions&amp; 12名参与者接触所有条件。这应该是你目前所处的阶段。我们可以轻松地进行主体间的呼叫。
# If you just read in the data set and don't know how many subjects
# N <- length(unique(df$Participant))
fit <- lm(matrix(df[,c("Accuracy")], nrow=N) ~ 1)
对于因子组件,这是唯一真正的变化。如果您只是生成模型设计,则可以将其传递给anova
。
library(car)
# You can create your within design table
# You can get these values from your dataset as well
# V <- nlevels(df$Visual)
# A <- nlevels(df$Audio)
# S <- nlevels(df$StimCondition)
# If you want the labels with gl, you can use the levels function (e.g. labels=levels(df$Visual))
inDf <- expand.grid(Visual=gl(V, 1),
Audio=gl(A, 1),
StimCondition=gl(S,1))
# Test for Visual
anova(fit, M=~Visual, X=~1, idata=inDf, test="Spherical")
# Test for Audio
anova(fit, M=~Visual+Audio, X=~Visual, idata=inDf, test="Spherical")
# Test for Visual:Audio interaction
anova(fit, M=~Visual+Audio+Visual:Audio, X=~Visual+Audio, idata=inDf, test="Spherical")
#etc...