我该如何计算不同组之间的方差分析,并查看它是否比R中每组中的方差大。
M1 M2 M3 M4 M5 M6 M7
1 G1 G2 G3 G4 G5 G6 G7
2 20.49 22.94 23.06 16.9 16.72 20.65 21.66
3 23.62 22.15 20.05 22.48 19.32 18.79 20.37
4 20.51 21.16 22.47 22.48 25.66 21.25 21.93
5 15.09 20.98 13.9 19.79 20.74 14.05 20.14
6 21.75 21.11 19.32 19.56 25.82 18.39 20.23
这就是我所做的。这是正确的吗?
g1<- c(20.49,23.62,20.51,15.09,21.75)
g2<-c(22.94,22.15,21.16,20.98,21.11)
g3<-c(23.06,20.05,22.47,13.9,19.32)
g4<-c(16.9,22.48,22.48,19.79,19.56)
g5<-c(16.72,19.32,25.66,20.74,25.82)
g6<-c(20.65,18.79,21.25,14.05,18.39)
g7<-c(21.66,20.37,21.93,20.14,20.23)
Combined_g<-data.frame(cbind(g1,g2,g3,g4,g5,g6,g7))
stacked_g<- stack(Combined_g)
Anova_results<- aov(values ~ ind, data = stacked_g)
summary(Anova_results)
Df Sum Sq Mean Sq F value Pr(>F)
ind 6 34.86 5.810 0.75 0.615
Residuals 28 216.92 7.747
答案 0 :(得分:1)
您需要使用长格式的数据,例如:
value factor
20.49 G1
23.62 G1
...
22.94 G2
...
20.23 G7
然后可以使用函数aov
fit <- aov(value ~ factor, data=yourdataframe)
summary(fit)
答案 1 :(得分:0)
该问题的完整答案如下,包括将宽格式数据转换为narrow format tidy data set的正确软件包。
首先,将数据加载到数据帧中,并使用enumerate
转换为窄格式。
tidyr::gather()
转换后,打印前几行。
rawData <- "G1 G2 G3 G4 G5 G6 G7
20.49 22.94 23.06 16.9 16.72 20.65 21.66
23.62 22.15 20.05 22.48 19.32 18.79 20.37
20.51 21.16 22.47 22.48 25.66 21.25 21.93
15.09 20.98 13.9 19.79 20.74 14.05 20.14
21.75 21.11 19.32 19.56 25.82 18.39 20.23 "
data <- read.table(text=rawData,header=TRUE,stringsAsFactors=TRUE)
library(tidyr) # needed to convert to narrow format tidy data
narrowData <- gather(data,key="group")
现在,使用> head(narrowData)
group value
1 G1 20.49
2 G1 23.62
3 G1 20.51
4 G1 15.09
5 G1 21.75
6 G2 22.94
>
函数进行方差分析并打印模型摘要统计信息。
aov()
...以及输出:
aovModel <- aov(value ~ group,data=narrowData)
aovModel
summary(aovModel)
方差分析检验以下假设:
如果我们愿意接受5%的类型1错误机会(在确实为真时拒绝零假设),则可以将拒绝区域设置为p = 0.05。
由于方差均匀性的F检验的p值大于0.05,因此我们无法拒绝均值相等的零假设。