9.5 双因素方差分析

在双因素方差分析中,受试者被分配到两因子的交叉类别组中。以基础安装中的ToothGrowth数据集为例,随机分配60只豚鼠,分别采用两种喂食方法(橙汁或维生素C),各喂食方法中抗坏血酸含量有三种水平(0.5 mg、1 mg或2 mg),每种处理方式组合都被分配10只豚鼠。牙齿长度为因变量,分析的代码见代码清单9-6。

代码清单9-6 双因素ANOVA

  1. > attach(ToothGrowth)
  2. > table(supp, dose)
  3. dose
  4. supp 0.5 1 2
  5. OJ 10 10 10
  6. VC 10 10 10
  7. > aggregate(len, by=list(supp, dose), FUN=mean)
  8. Group.1 Group.2 x
  9. 1 OJ 0.5 13.23
  10. 2 VC 0.5 7.98
  11. 3 OJ 1.0 22.70
  12. 4 VC 1.0 16.77
  13. 5 OJ 2.0 26.06
  14. 6 VC 2.0 26.14
  15. > aggregate(len, by=list(supp, dose), FUN=sd)
  16. Group.1 Group.2 x
  17. 1 OJ 0.5 4.46
  18. 2 VC 0.5 2.75
  19. 3 OJ 1.0 3.91
  20. 4 VC 1.0 2.52
  21. 5 OJ 2.0 2.66
  22. 6 VC 2.0 4.80
  23. > fit <- aov(len ~ supp*dose)
  24. > summary(fit)
  25. Df Sum Sq Mean Sq F value Pr(>F)
  26. supp 1 205 205 12.32 0.0009 ***
  27. dose 1 2224 2224 133.42 <2e-16 ***
  28. supp:dose 1 89 89 5.33 0.0246 *
  29. Residuals 56 934 17
  30. ---
  31. Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

table语句的预处理表明该设计是均衡设计(各设计单元中样本大小都相同),aggregate语句处理可获得各单元的均值和标准差。用summary()函数得到方差分析表,可以看到主效应(suppdose)和交互效应都非常显著。

有多种方式对结果进行可视化处理。此处可用interaction.plot()函数来展示双因素方差分析的交互效应。代码为:

  1. interaction.plot(dose, supp, len, type="b",
  2. col=c("red","blue"), pch=c(16, 18),
  3. main = "Interaction between Dose and Supplement Type")

结果如图9-6所示。图形展示了各种剂量喂食下豚鼠牙齿长度的均值。

9.5 双因素方差分析 - 图1

图9-6 喂食方法和剂量对牙齿生长的交互作用。用interaction.plot()函数绘制了牙齿长度的均值

还可以用gplots包中的plotmeans()函数来展示交互效应。生成图形如图9-7所示,代码如下:

  1. library(gplots)
  2. plotmeans(len ~ interaction(supp, dose, sep=" "),
  3. connect=list(c(1,3,5),c(2,4,6)),
  4. col=c("red", "darkgreen"),
  5. main = "Interaction Plot with 95% CIs",
  6. xlab="Treatment and Dose Combination")

9.5 双因素方差分析 - 图2

图9-7 喂食方法和剂量对牙齿生长的交互作用。用plotmeans()函数绘制的95%的置信区间的牙齿长度均值

图形展示了均值、误差棒(95%的置信区间)和样本大小。

最后,你还能用HH包中的interaction2wt()函数来可视化结果,图形对任意顺序的因子设计的主效应和交互效应都会进行展示(图9-8):

  1. library(HH)
  2. interaction2wt(len~supp*dose)

同样的,图9-8为适合黑白印刷做了修改,若你运行上面的代码,生成的图形会略有不同。

9.5 双因素方差分析 - 图3

图9-8 ToothGrowth数据集的主效应和交互效应。图形由interaation2wt()函数创建

以上三幅图形都表明随着橙汁和维生素C中的抗坏血酸剂量的增加,牙齿长度变长。对于0.5 mg和1 mg剂量,橙汁比维生素C更能促进牙齿生长;对于2 mg剂量的抗坏血酸,两种喂食方法下牙齿长度增长相同。三种绘图方法中,我更推荐HH包中的interaction2wt()函数,因为它能展示任意复杂度设计(双因素方差分析、三因素方差分析等)的主效应(箱线图)和交互效应。

此处没有涵盖模型假设检验和均值比较的内容,因为它们只是之前方法的一个自然扩展而已。而且,该设计是均衡的,故而不用担心效应顺序的影响。