R上三个子集的ANOVA

时间:2019-04-11 02:38:40

标签: r subset anova

我是R的真正新手。我有一个.csv数据文件。 我创建了3个数据子集,分别代表三个不同组对问卷的答复。

p_groupFMI = subset(data, M_freq==1) #n= 
c_groupFMI = subset(data, M_freq==2) #n=
i_groupFMI = subset(data, M_freq==3) #n=

我想尝试将这三个组的平均值与方差分析进行比较。然后做一个火鸡测试。我可以不必尝试创建关卡之类的东西吗?

我尝试过

aov.data = aov(data$Mean ~ data$M_freq, data=data)
summary(aov.data)
TukeyHSD(aov.data)

但这似乎效果不佳。

1 个答案:

答案 0 :(得分:1)

这里有一些数据,用类型因子的分组变量表示为三组。

n1 <- n2 <- n3 <- 4    
df.test <- as.data.frame(list(
    grouping = as.factor(c(rep(1,times=n1),rep(2,times=n2),rep(3,times=n3))), #arbitrary factor
    data = c(rnorm(n=n1,mean=1),rnorm(n=n2,mean=10),rnorm(n=n3,mean=11)))) #random data
head(df.test)
#   grouping       data
# 1        1  2.1026786
# 2        1  0.4464325
# 3        1 -1.0131310
# 4        1  1.6502438
# 5        2 10.8733848
# 6        2  9.3680943

要检验组1、2和3的组均值是否显着不同:

anova <- aov(df.test$data ~ df.test$grouping)
summary(anova)
#                  Df Sum Sq Mean Sq F value
# df.test$grouping  2 280.93  140.47   111.4
# Residuals         9  11.34    1.26        
#                    Pr(>F)    
# df.test$grouping 4.47e-07 ***
# Residuals                    
# ---
# Signif. codes:  
# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

您可以运行Tukey测试:

TukeyHSD(anova)
#   Tukey multiple comparisons of means
#     95% family-wise confidence level
# 
# Fit: aov(formula = df.test$data ~ df.test$grouping)
# 
# $`df.test$grouping`
#           diff       lwr       upr     p adj
# 2-1  9.9632077  7.746675 12.179740 0.0000014
# 3-1 10.5404363  8.323904 12.756969 0.0000009
# 3-2  0.5772286 -1.639304  2.793761 0.7542212