基于R语言开展方差分析—双因素方差分析

Posted 撄宁的小屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于R语言开展方差分析—双因素方差分析相关的知识,希望对你有一定的参考价值。

基本原理

双因素方差分析是用于同时分析两个自变量对一个因变量影响的方法。双因素方差分析先将受试对象按性质(窝别、体重等非试验因素)相同或相近者组成A个区组(配伍组),再把每个区组中的受试者分别随机分配到B个处理组观察实验效应。双因素方差分析的检验假设如下:

原假设

备择假设

因素A对总体均数没影响

因素A对总体均数有影响

因素B对总体均数没影响

因素B对总体均数有影响

因素A和因素B交叉作用对总体均数没影响

因素A和因素B的交叉作用对总体均数有影响

R语言实践

本文使用R语言内置数据集ToothGrowth进行双因素方差分析实践。ToothGrowth是用于评估维生素C对豚鼠牙齿生长影响的数据集。在该数据中,每只豚鼠通过橙汁或抗坏血酸中的一种给药方法分别接受三种剂量水平的维生素C(0.5、1和2mg/天);该数据集包含了60只豚鼠的数据。
首先,导入数据:

# 导入数据
my_data <- ToothGrowth
# 将剂量转换为因子数据类型
my_data$dose <- factor(my_data$dose,
levels = c(0.5, 1, 2),
labels = c("D0.5", "D1", "D2"))

其次,对通过箱型图和线图数据进行可视化:

# 绘制箱型图
ggboxplot(my_data, x = "dose", y = "len", color = "supp",
palette = c("#00AFBB", "#E7B800"))

# 绘制线图
ggline(my_data, x = "dose", y = "len", color = "supp",
add = c("mean_se", "dotplot"),
palette = c("#00AFBB", "#E7B800"))

绘制结果如下:

然后进行方差分析:

# 计算方差分析
res.aov <- aov(len ~ supp * dose, data = my_data)
# 输出分析结果
summary(res.aov)

需要注意的是在aov函数中给药方式(supp)和剂量(dose)两个因素之间用乘号(*)连接,不能使用加号(+)连接。使用加号表示假设两个因素之间是独立的,这样就不能检验因素间的交叉作用是否对总体均数有影响。分析结果如下:

 Df Sum Sq Mean Sq F value   Pr(>F)
supp 1 205.4 205.4 15.572 0.000231 ***
dose 2 2426.4 1213.2 92.000 < 2e-16 ***
supp:dose 2 108.3 54.2 4.107 0.021860 *
Residuals 54 712.1 13.2
---
Signif. codes: 0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

上述结果表明三个原假设均被拒绝,即给药方式、剂量以及两个因素的交互作用均对豚鼠牙齿生长有影响。同时,我们可以看出剂量对豚鼠牙齿生长的影响最大。
最后,我们可以计算Tukey HSD(Tukey Honest Significant Differences,R函数:TukeyHSD()可以实现),以在组均值之间进行多次成对比较。结合方差分析的结果,我们剂量这一个因素进行多次成对比较:

# 确定特定组对之间的平均差异是否具有统计显著性
TukeyHSD(res.aov, which = "dose")

分析结果如下:

Tukey multiple comparisons of means
95% family-wise confidence level

Fit: aov(formula = len ~ supp * dose, data = my_data)

$dose
diff lwr upr p adj
D1-D0.5 9.130 6.362488 11.897512 0.0e+00
D2-D0.5 15.495 12.727488 18.262512 0.0e+00
D2-D1 6.365 3.597488 9.132512 2.7e-06

上述结果表明说明不同剂量对豚鼠牙齿生长的影响不同。

往期推荐


以上是关于基于R语言开展方差分析—双因素方差分析的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)gplots包的plotmeans函数在双因素方差分析中显示交互作用包括均值,误差条95%置信区间样本量

R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)

R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA)

R语言使用lmPerm包应用于线性模型的置换方法(置换检验permutation tests)在同一数据集上使用双因素方差分析(one-way ANCOVA)aovp函数的置换检验双因素方差分析

R语言使用lmPerm包应用于线性模型的置换方法(置换检验permutation tests)在同一数据集上使用双因素方差分析(one-way ANCOVA)aovp函数的置换检验双因素方差分析

R语言—方差分析