如何在 r 中执行多元方差分析
要理解多元方差分析,首先要理解方差分析。
ANOVA (方差分析)用于确定三个或更多独立组的平均值之间是否存在统计显着差异。
例如,假设我们想知道学习技巧是否对某个班级学生的考试成绩有影响。我们把全班随机分成三组。每个小组在一个月内使用不同的学习技巧来准备考试。月底,所有学生参加相同的考试。
为了查明学习技巧是否对考试成绩有影响,我们可以进行单向方差分析,这将告诉我们三组的平均成绩之间是否存在统计上的显着差异。
在方差分析中,我们有一个响应变量。然而,在多元方差分析( MANOVA )中,我们有多个响应变量。
例如,假设我们想知道教育水平(即高中、副学士学位、学士学位、硕士学位等)对年收入和学生债务金额的影响。在这种情况下,我们有一个因素(教育水平)和两个响应变量(年收入和学生债务),因此我们可以执行单向多元方差分析。
相关: 了解方差分析、ANCOVA、MANOVA 和 MANCOVA 之间的差异
如何在 R 中执行多元方差分析
在下面的示例中,我们将说明如何使用内置的鸢尾花数据集在 R 中执行单向多元方差分析,该数据集包含有关三种不同物种(“setosa”、“virginica”)的不同花测量的长度和宽度的信息,“杂色”):
#view first six rows of iris dataset
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
假设我们想知道物种是否对萼片长度和宽度有影响。使用物种作为自变量,萼片长度和宽度作为响应变量,我们可以使用 R 中的manova()函数执行单向多元方差分析。
manova()函数使用以下语法:
马诺瓦 (cbind (rv1, rv2, …) ~ iv, 数据)
金子:
- rv1、rv2 :响应变量1、响应变量2等。
- iv : 自变量
- data : 数据框的名称
在我们的 iris 数据集示例中,我们可以拟合多元方差分析并使用以下语法显示结果:
#fit the MANOVA model model <- manova(cbind(Sepal.Length, Sepal.Width) ~ Species, data = iris) #view the results summary(model) # Df Pillai approx F num Df den Df Pr(>F) #Species 2 0.94531 65.878 4,294 < 2.2e-16 *** #Residuals 147 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
从结果中我们可以看到,F 统计量为 65.878,相应的 p 值非常小。这表明根据物种的不同,萼片测量值存在统计学上的显着差异。
技术说明:默认情况下,manova() 使用Pillai检验统计量。由于该检验统计量的分布很复杂,因此还提供了近似的 F 值以便于解释。
此外,可以使用以下语法指定“Roy”、“Hotelling-Lawley”或“Wilks”作为要使用的检验统计量:summary(model, test = ‘Wilks’)
为了准确找出物种对萼片长度和宽度的影响,我们可以使用summary.aov()执行单变量方差分析,如以下代码所示:
summary.aov(model) # Response Sepal.Length: # Df Sum Sq Mean Sq F value Pr(>F) #Species 2 63.212 31.606 119.26 < 2.2e-16 *** #Residuals 147 38.956 0.265 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # Response Sepal.Width: # Df Sum Sq Mean Sq F value Pr(>F) #Species 2 11.345 5.6725 49.16 < 2.2e-16 *** #Residuals 147 16.962 0.1154 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
从结果中我们可以看到,两个单变量方差分析的 p 值都极低(<2.2e-16),表明物种对萼片宽度和长度具有统计显着影响。
可视化团队资源
将自变量物种的每个水平的组均值可视化也可能很有用,以便更好地理解我们的结果。
例如,我们可以使用gplots库和plotmeans()函数来可视化按物种划分的萼片的平均长度:
#load gplots library library(gplots) #visualize mean sepal length by species plotmeans(iris$Sepal.Length ~ iris$Species)
从图中我们可以看出,不同物种的平均萼片长度差异很大。这与我们的多元方差分析结果相匹配,该结果告诉我们,不同物种的萼片测量值存在统计学上的显着差异。
我们还可以按物种可视化萼片的平均宽度:
plotmeans(iris$Sepal.Width ~ iris$Species)
请参阅此处manova()函数的完整文档。