如何在 r 中执行三向方差分析
三向方差分析用于确定分布在三个因素中的三个或更多独立组的平均值之间是否存在统计显着差异。
以下示例显示如何在 R 中执行三向方差分析。
示例:R 中的三向方差分析
假设研究人员想要确定两种训练计划是否会导致大学篮球运动员的跳跃高度平均提高不同。
研究人员怀疑性别和分区(分区 I 或分区 II)也可能影响跳跃高度,这就是他也收集这些因素数据的原因。
他的目标是进行三向方差分析,以确定训练计划、性别和划分如何影响跳跃高度。
请按照以下步骤在 R 中执行此三向方差分析:
第 1 步:创建数据
首先,让我们创建一个数据框来保存数据:
#create dataset df <- data. frame (program=rep(c(1, 2), each= 20 ), gender=rep(c(' M ', ' F '), each= 10 , times= 2 ), division=rep(c(1, 2), each= 5 , times= 4 ), height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5, 5, 5, 4, 5, 4, 3, 3, 4, 3, 3, 6, 6, 5, 4, 5, 4, 5, 4, 4, 3, 2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) #view first six rows of dataset head(df) program gender division height 1 1 M 1 7 2 1 M 1 7 3 1 M 1 8 4 1 M 1 8 5 1 M 1 7 6 1 M 2 6
第 2 步:查看描述性统计数据
在进行三向方差分析之前,我们可以使用dplyr快速总结按训练计划、性别和组别分组的平均跳跃高度增加:
library (dplyr) #calculate mean jumping height increase grouped by program, gender, and division df %>% group_by(program, gender, division) %>% summarize(mean_height = mean(height)) # A tibble: 8 x 4 # Groups: program, gender [4] program gender division mean_height 1 1 F 1 4.6 2 1 F 2 3.2 3 1 M 1 7.4 4 1 M 2 5.6 5 2 F 1 2.6 6 2 F 2 1.4 7 2 M 1 5.2 8 2 M 2 4
以下是如何解释结果:
- 使用训练计划 1 的一级女子运动员的跳跃高度平均增加了4.6 英寸。
- 使用训练计划 1 的 II 级女子跳跃高度平均增加3.2 英寸。
- 使用训练计划 1 的一级男子跳跃高度平均增加7.4 英寸。
等等。
步骤 3:执行三因素方差分析
接下来,我们可以使用aov()函数来执行三向方差分析:
#perform three-way ANOVA model <- aov(height ~ program * gender * division, data=df) #view summary of three-way ANOVA summary(model) Df Sum Sq Mean Sq F value Pr(>F) program 1 36.1 36.10 65.636 2.98e-09 *** gender 1 67.6 67.60 122.909 1.71e-12 *** division 1 19.6 19.60 35.636 1.19e-06 *** program:gender 1 0.0 0.00 0.000 1.000 program:division 1 0.4 0.40 0.727 0.400 gender:division 1 0.1 0.10 0.182 0.673 program:gender:division 1 0.1 0.10 0.182 0.673 Residuals 32 17.6 0.55 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pr(>F)列显示每个单独因子的 p 值以及因子之间的交互作用。
从结果中我们可以看出,三个因素之间的交互作用均不具有统计显着性。
我们还可以看到,项目、性别和部门这三个因素均具有统计显着性。
现在,我们可以再次使用 dplyr 分别查找项目、性别和组别的平均跳跃高度增加:
library (dplyr) #find mean jumping increase by program df %>% group_by(program) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 program mean_height 1 1 5.2 2 2 3.3 #find mean jumping increase by gender df %>% group_by(gender) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 gender mean_height 1 F 2.95 2M 5.55 #find mean jumping increase by division df %>% group_by(division) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 division mean_height 1 1 4.95 2 2 3.55
从结果中我们可以观察到以下几点:
- 使用训练计划 1 的人的跳跃高度的平均增幅( 5.2 英寸)大于使用训练计划 2 的人的平均增幅(3.3 英寸)。
- 男性跳跃高度的平均增幅( 5.55 英寸)大于女性的平均增幅(2.95 英寸)。
- 1 级球员的跳跃高度平均增幅( 4.95 英寸)大于 2 级球员的平均跳跃高度增幅(3.55 英寸)。
总之,我们可以说,训练计划、性别和级别都是提高运动员弹跳高度的重要指标。
我们还可以说,这三个因素之间不存在显着的交互作用。
其他资源
以下教程解释了如何在 R 中拟合其他方差分析模型: