计算不同组之间的方差分析

时间:2018-10-13 18:17:25

标签: r statistics variance

我该如何计算不同组之间的方差分析,并查看它是否比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 

2 个答案:

答案 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)

解释结果

方差分析检验以下假设:

  • 无效假设:均值(group1)=均值(group2)= ... =均值(group7)
  • 替代假设:平均值在所有组中均不相同

如果我们愿意接受5%的类型1错误机会(在确实为真时拒绝零假设),则可以将拒绝区域设置为p = 0.05。

由于方差均匀性的F检验的p值大于0.05,因此我们无法拒绝均值相等的零假设。