双因子方差分析:R中的双因子ANOVA

Source: http://www.r-bloggers.com/two-way-analysis-of-variance-two-way-anova-in-r/

 

单因子方差分析是验证多个群组均值是否相等的非常有用的技术。但一些更复杂的问题这个技术就无能为力了。例如,有时需要考虑变异的两个因子来决定群组之间的平均依赖于群组分类(“zone”),还是第二级需考虑的变量(“block”)。在这个情形中应该使用双因子方差分析(双因子ANOVA)。

我们立刻以一个例子开始,以便于理解这个统计方法。收集的数据组织在双项表(double entry tables)中。

-------------------------------------------------------

公司董事收集了5年的收入(thousand dollars),而每年都统计到每个月份。你想看看收入是依赖于年呢,还是依赖于月份,或者与这两个因素都无关。

理论上,这个问题可以用horizontal ANOVA和vertical ANOVA来解决,以便于验证每年的平均收入是否相同,或者由月份计算的平均收入是否相等。这需要许多计算,因而我们更愿意用双因子ANOVA,能够及时提供结果。这是已统计的收入表,分别由年和月份分类:

Revenue
Months Year1 Year2 Year3 Year4 Year5
Jan 15 18 22 23 24
Feb 22 25 15 15 14
Mar 18 22 15 19 21
Apr 23 15 14 17 18
May 23 15 26 18 14
Jun 12 15 11 10 8
Jul 26 12 23 15 18
Aug 19 17 15 20 10
Sep 15 14 18 19 20
Oct 14 18 10 12 23
Nov 14 22 19 17 11
Dec 21 23 11 18 14

首先将数据录入,然后创建月份和年两个维度的因子变量:

revenue = c(15,18,22,23,24, 22,25,15,15,14, 18,22,15,19,21, 
         23,15,14,17,18, 23,15,26,18,14, 12,15,11,10,8, 26,12,23,15,18, 
         19,17,15,20,10, 15,14,18,19,20, 14,18,10,12,23, 14,22,19,17,11, 
         21,23,11,18,14)
months = gl(12,5)
years = gl(5, 1, length(revenue))


现在就拟合线性模型和产生ANOVA表:

fit = aov(revenue ~ months + years)

anova(fit)

Analysis of Variance Table

Response: revenue
          Df Sum Sq Mean Sq F value Pr(>F)
months    11 308.45   28.04  1.4998 0.1660
years      4  44.17   11.04  0.5906 0.6712
Residuals 44 822.63   18.70  


这样来解释结果:

不同月份之间差异额显著性为:F=1.4998。这个值比查表值低,并且p-value>0.05。因此我们接受null hypothesis,即根据月份来评估的收入均值都相等,所以变量“月份”在收入上没有影响。

不同年之间差异额显著性为:F=0.5906。这个值比查表值低,并且p-value>0.05。因此我们接受null hypothesis,即根据年来评估的收入均值都相等,所以变量“年”在收入上没有影响。

 

你可能感兴趣的:(双因子方差分析:R中的双因子ANOVA)