R语言学习-双因素方差分析
2019-02-14 本文已影响0人
邱俊辉
双因素方差分析
在双因素方差分析中,受试者被分到两因子的交叉类别组中。示例数据来源于ToothGrowth数据集-随机分配60只豚鼠,分别采取两种喂食方式(橙汁或维生素C)各种喂食方式中抗坏血酸的剂量有三种水平(0.5mg,1mg,2mg),牙齿长度为因变量
> summary(ToothGrowth)
len supp dose
Min. : 4.20 OJ:30 Min. :0.500
1st Qu.:13.07 VC:30 1st Qu.:0.500
Median :19.25 Median :1.000
Mean :18.81 Mean :1.167
3rd Qu.:25.27 3rd Qu.:2.000
Max. :33.90 Max. :2.000
len-牙齿长度 supp-喂食方式 dose-剂量
> table(ToothGrowth$supp,ToothGrowth$dose)#k可以明显看出两种因素
0.5 1 2
OJ 10 10 10
VC 10 10 10
> aggregate(ToothGrowth$len,by=list(ToothGrowth$supp,ToothGrowth$dose),FUN=mean)
Group.1 Group.2 x
1 OJ 0.5 13.23
2 VC 0.5 7.98
3 OJ 1.0 22.70
4 VC 1.0 16.77
5 OJ 2.0 26.06
6 VC 2.0 26.14
#可以看出各组均值存在差异
> class(ToothGrowth$dose)#原数据集dose向量为字符向量,不是分组因子
[1] "numeric"
> ToothGrowth$dose<-factor(ToothGrowth$dose)#将dose向量转化为因子向量
> class(ToothGrowth$dose)
[1] "factor"
> fit<-aov(len~supp*dose,data = ToothGrowth)
> summary(fit)
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
从结果可以看出主效应和交互效应都很显著
结果可视化-interaction2wt()
HH包中的interaction2wt()函数可以用来可视化结果,图形把任意顺序的因子设计的主效应和交互效应都会进行展示
> library(HH)
> interaction2wt(len~dose*supp,data = ToothGrowth)
image.png
从结果可以看出随着橙汁和VC中抗坏血酸剂量的增加,牙齿长度会变长,对于0.5mg和1mg,橙汁的效果比果汁好