双因素方差分析(Double factor variance analysis) 有两种类型:一个是无交互作用的双因素方差分析,它假定因素A和因素B的效应之间是相互独立的,不存在相互关系;另一个是有交互作用的双因素方差分析,它假定因素A和因素B的结合会产生出一种新的效应。例如,若假定不同地区的消费者对某种品牌有与其他地区消费者不同的特殊偏爱,这就是两个因素结合后产生的新效应,属于有交互作用的背景;否则,就是无交互作用的背景。这里介绍无交互作用的双因素方差分析。
一、双因素方差分析
当方差分析涉及两个分类试验因素对试验指标的影响差异性时,则可称为双因素方差分析。如要检验不用地区的不同品牌商品的市场销售潜力是否相等,或要检验不同区域不同品牌连锁店的服务消费者认可度是否相等,两个例子中均涉及“区域”、“品牌”两个因素,故其属于双因素方差分析。
1.1问题描述
在双因素分析中,所考虑的因素有两个,各因素又包含若干种水平,而不同水平之间有可能存在系统性差异,只是需要通过检验才能验证这种系统差异是否确实存在。在检验过程中,需要分析两种因素下的不同水平间的差异是否显著存在。
例1 设有 n 个工人使用 m 台机器生产同一种产品,记录每个工人使用每台机器的日产量。那么不同工人之间的生产能力是否有差异,不同机器之间的生产性能是否有差异,需要进行检验,这里所要分析的因素既包括“工人”,也包括“机器”。
例2 灯泡厂在 3 个不同技术员操作下,用 4 种不同配料方案制成的灯丝生产了 4 批灯泡,那么不同技术员之间的技术是否有差异,不同配料方案之间的性能是否有差异,需要进行检验,这里所要分析的因素既包括“技术员”,也包括“配料方案”。
为分析需要,在双因素方差分析中,用A表示因素1,用B表示因素2,A因素的k个水平(总体)分别用A1,A2,…,Ak表示,B 因素的 r 个水平(总体)分别用B1,B2,…,Br表示,每个观测值用 xij(i =1,2,…,k; j =1,2,…,r )表示,即 xij表示 A 因素第 i 个水平(总体)和 B 因素第j个水平所组合成的k×r个总体中抽取的样本量为1的样本观测值。
1.2 分析步骤
第一步,提出假设
对A因素提出的假设为
H0:μ1=μ2=…=μk(假设A因素各水平间没有显著差异,也即A因素对试验指标无显著影响)
H1:μi不全相等(i=1,2,…,k)(假设A因素各水平间有显著差异,也即A因素对试验指标有显著影响)
对B因素提出的假设为
H0:μ1=μ2=…=μr(假设B因素各水平间没有显著差异,也即B因素对试验指标无显著影响)
H1:μi不全相等(i=1,2,…,r)(假设B因素各水平间有显著差异,也即B因素对试验指标有显著影响)
第二步,构造方差分析表
双因素的方差分析表如下表所示:
二、双因素方差分析示例
2.1 问题
研究5种不同的配料(A、B、C、D、E)对某一化学过程反应时间的效应。每批新材料仅够进行5次试验。每次试验大约需要1.5小时,所以一天只能做5次试验。实验者决定用拉丁方来进行实验,使用日期和批次效应可以系统地控制。分析不同配料对反应时间的效应有无显著差异。
2.2 R语言计算
读取数据并进行预处理
#将上面图中数据编辑为数据文件data.csv
mydata = read.csv("data.csv")
head(mydata)
time batch ingredients response
1 1 1 A 8
2 1 2 C 11
3 1 3 B 4
4 1 4 D 6
5 1 5 E 4
6 2 1 B 7
time <- factor(time)
batch <- factor(batch)
ingredients <- factor(ingredients)
读取数据,将时间(time)、批次(batch)和配料(ingredients)进行因子化处理
对数据进行正态性检验
对全体响应(response)进行正态性分布,采用w检验
shapiro.test(response) #检验全体response
Shapiro-Wilk normality test
data: response
W = 0.95056, p-value = 0.2581
检验原假设是全体响应满足正态性分布,由w检验可知 p > 0.05 p>0.05 p>0.05,接受原假设,response服从正态分布
对数据进行方差齐性检验
采用bartlett方法对不同配方下响应进行方差齐性检验
bartlett.test(response ~ ingredients, data=mydata)
Bartlett test of homogeneity of variances
data: response by ingredients
Bartlett's K-squared = 1.5544, df = 4, p-value = 0.817
检验原假设是不同配料下的各组响应满足方差齐性,由检验结果可知 p > 0.05 p>0.05 p>0.05,接受原假设,不同配料下的各组响应满足方差齐性
对数据进行方差分析
使用aov()函数对数据进行方差分析;检验对象为响应(response),自变量为时间(time)、批次(batch)和配方(ingredients)
mydata.aov.blk = aov(response ~ ingredients + time + batch)
summary(mydata.aov.blk)
Df Sum Sq Mean Sq F value Pr(>F)
ingredients 4 141.44 35.36 11.309 0.000488 ***
time 4 12.24 3.06 0.979 0.455014
batch 4 15.44 3.86 1.235 0.347618
Residuals 12 37.52 3.13
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结果
由方差分析结果可知,对于原假设H0:不同配料对反应时间的效应无显著差异,而方差分析结果为原假设出现的概率 p = 0.000488 , p < 0.05 p=0.000488,p<0.05 p=0.000488,p<0.05,故不同配料对反应时间的效应有显著差异。同理可知,使用日期和批次效应对反应时间的效应影响不大。
总结
在实际问题的研究中,有时需要考虑两个因素对实验结果的影响。例如饮料销售,除了关心饮料品牌之外,我们还想了解销售地区是否影响销售量,如果在不同的地区,销售量存在显著的差异,就需要分析原因。采用不同的销售策略, 使该饮料品牌在市场占有率高的地区继续深入人心,保持领先地位;在市场占有率低的地区,进一步扩大宣传,让更多的消费者了解、接受该产品。若 把饮料的品牌看作影响销售量的因素A,饮料的销售地区则是影响因素B。对因素A和因素B同时进行分析,就属于双因素方差分析的内容, 双因素方差分析是对影响因素进行检验,究竟是一个因素在起作用,还是两个因素都起作用,或是两个因素的影响都不显著。