我正在尝试用R对一个数据集进行方差分析,其中一个在因子内,一个在因子之间。这些数据来自一个测试两种测试方法相似性的实验。每个受试者都被测试在方法1和方法2(内部因素)中,以及在4个不同的组中(之间因素)。我尝试过使用aov、Anova(在car包中)和ezAnova函数。对于我尝试的每个方法,我都得到了错误的值。我不确定我的错误在哪里,是缺乏对R的理解还是Anova本身。我包含了我使用的代码,我觉得这些代码应该是可以工作的。我已经尝试了大量的变体,希望能偶然找到答案。这组数据是平衡的,但我有很多类似的数据集,其中许多是不平衡的。感谢您能提供的任何帮助。
library(car)
library(ez)
#set up data
sample_data <- data.frame(Subject=rep(1:20,2),Method=rep(c('Method1','Method2'),each=20),Level=rep(rep(c('Level1','Level2','Level3','Level4'),each=5),2))
sample_data$Result <- c(4.76,5.03,4.97,4.70,5.03,6.43,6.44,6.43,6.39,6.40,5.31,4.54,5.07,4.99,4.79,4.93,5.36,4.81,4.71,5.06,4.72,5.10,4.99,4.61,5.10,6.45,6.62,6.37,6.42,6.43,5.22,4.72,5.03,4.98,4.59,5.06,5.29,4.87,4.81,5.07)
sample_data[, 'Subject'] <- as.factor(sample_data[, 'Subject'])
#Set the contrats if needed to run type 3 sums of square for unblanaced data
#options(contrats=c("contr.sum","contr.poly"))
#With aov method as I understand it 'should' work
anova_aov <- aov(Result ~ Method*Level + Error(Subject/Method),data=test_data)
print(summary(anova_aov))
#ezAnova method,
anova_ez = ezANOVA(data=sample_data, wid=Subject, dv = Result, within = Method, between=Level, detailed = TRUE, type=3)
print(anova_ez)另外,我应该通过SAS获得输出的值
发布于 2016-11-08 06:33:09
实际上,您的R代码在这两种情况下都是正确的。通过SPSS运行这些数据得到了相同的结果。与SPSS一样,SAS似乎要求内部因子的级别出现在单独的列中。您将得到20行,而不是40行。下面这样的安排可能会在SAS中给出您想要的结果:
主题级别Method1 Method2
https://stackoverflow.com/questions/40471703
复制相似问题