📅  最后修改于: 2023-12-03 14:46:53.016000             🧑  作者: Mango
方差分析(ANOVA)是一种广泛使用的统计方法,用于比较两个或多个组之间的平均值是否有显著差异。在 R 编程中,可以利用内置的 aov()
函数进行方差分析测试。
在进行方差分析测试前,我们需要准备好相应的数据。假设我们有一个数据框,包含以下变量:
group
:所属组别,取值为 A
、B
、C
;value
:数值变量,表示对应观测值的数值。为了演示方便,我们可以使用内置的 iris
数据集的一个子集作为示例数据:
# 载入 iris 数据集
data(iris)
# 取出 setosa 品种的第一列和第四列作为示例数据
df <- iris[iris$Species == "setosa", c("Sepal.Length", "Petal.Length")]
names(df) <- c("group", "value")
有了数据之后,我们就可以使用 aov()
函数进行方差分析测试了。下面是一个基本的示例:
# 进行方差分析测试
model <- aov(value ~ group, data = df)
# 查看方差分析结果
summary(model)
在上面的代码中,我们首先使用 aov()
函数进行方差分析测试,并将结果存储在变量 model
中。然后,我们可以使用 summary()
函数来查看方差分析的结果。执行上面的代码后,你会得到如下的输出结果:
Df Sum Sq Mean Sq F value Pr(>F)
group 2 10.52 5.258 11.49 5.2e-05 ***
Residuals 47 16.63 0.353
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
可以看到,在这个示例中:
Df
列列出了自由度的信息;Sum Sq
和 Mean Sq
分别列出了组间平方和、组间均方和、残差平方和和残差均方和的信息;F value
列列出了检验统计量的计算值;Pr(>F)
列列出了双尾检验的 p 值。由于 Pr(>F)
值小于 0.05,因此我们可以得出结论:不同组别之间的平均值存在显著差异。
在进行方差分析测试后,我们还可以进行其他操作:
我们可以使用 tapply()
函数来获取不同组别的均值。示例代码如下:
# 获取不同组别的均值
means <- tapply(df$value, df$group, mean)
means
执行上面的代码后,你会得到如下的输出结果:
A B C
5.01 5.99 5.41
可以看到,组别 A
的均值为 5.01、组别 B
的均值为 5.99、组别 C
的均值为 5.41。
我们可以使用 boxplot()
函数来绘制盒图,直观地显示各组别的分布情况。示例代码如下:
# 绘制盒图
boxplot(df$value ~ df$group, col = "lightblue", ylab = "Value")
执行上面的代码后,你会得到如下的盒图:
可以看到,组别 B
的中位数明显大于其他组别,与上面的方差分析结果是相符的。
以上就是 R 编程中的方差分析测试的基本介绍。方差分析测试是一种重要的统计方法,在实际工作中有着广泛的应用。在 R 编程中,我们可以轻松地进行方差分析测试,并使用其他函数来对测试结果进行进一步的分析和可视化。