如何在 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()函数的完整文档。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注