分享免费的编程资源和教程

网站首页 > 技术教程 正文

R数据分析:双因素方差分析与交互作用检验

goqiw 2025-01-09 12:35:25 技术教程 62 ℃ 0 评论

Two-way ANOVA test is used to evaluate simultaneously the effect of two grouping variables (A and B) on a response variable.


双因素方差分析(Two-way ANOVA test) 是研究设计中常见的类型,通常分为两种:一个是无交互作用的双因素方差分析,它假定因素A和因素B的效应之间是相互独立的,不存在相互关系;另一个是有交互作用的双因素方差分析,它假定因素A和因素B的结合会产生出一种新的效应。例如,若假定不同地区的消费者对某种品牌有与其他地区消费者不同的特殊偏爱,这就是两个因素结合后产生的新效应,属于有交互作用的背景;否则,就是无交互作用的背景。

今天就给大家写写如何在R语言中做双因素方差分析。

示例数据

示例数据集:ToothGrowth

data("ToothGrowth")
head(ToothGrowth)

示例数据如下:

##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5

依然是之前文章的数据,今天要做的就是做不同组1(不同dose)和不同组2(不同supp)之间的len的值的比较,dose是有三个水平的,supp是有2个水平,所以今天要做的就是双因素方差分析。

首先我们不妨做一个交叉表出来,更直观的了解下我们的数据:

table(ToothGrowth$supp, ToothGrowth$dose)


通过上图的结果,我们直到数据的2*3的不同水平上每个水平都有10个个案。

再来画图比较下每个水平len的大小:

library("ggpubr")
ggboxplot(ToothGrowth, x = "dose", y = "len", color = "supp",
          palette = c("#00AFBB", "#E7B800"))


上面画的箱型图,我们还可以画出线图:

ggline(ToothGrowth, x = "dose", y = "len", color = "supp",
       add = c("mean_se"),#, "dotplot"),
       palette = c("#00AFBB", "#E7B800"))


交互作用检验

看线图很直观,好像有交互作用欸,我们接下来做做统计检验:

res.aov2 <- aov(len ~ supp + dose, data = ToothGrowth)
summary(res.aov2)


统计检验的结果也显示,两个因子(supp和dose)上len都有显著差异,注意上面的分析是我们设定没有交互作用的,如果我们看图或者根据理论认为两因子之间有交互作用,那么,代码写成:

res.aov2 <- aov(len ~ supp * dose, data = ToothGrowth)
summary(res.aov2)

就是把原先的+变为*就行,这样就会自动给我们检验交互作用了,结果如下:

可以看出来,交互项也有统计学意义!

小结

今天给大家写了双因素方差分析和交互作用的推断,感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python和R的,加油。

(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

往期内容:

数据可视化——R语言两两比较时为图形添加P值和显著性水平

R语言:利用caret的dummyVars函数设置虚拟变量

数据可视化——R语言为ggplot图形添加P值和显著性水平

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表