在方差分析中,有三个基本的假设:
(1) 正态假设。对于因素的每个水平,其观测值都是来自正态总体的随机样本;
(2) 方差齐次假设。各个总体的方差相同;
(3) 独立假设。观测值之间都是独立的。
设试验中的因素A,有r个水平A1,A2,...,An,在每个水平下进行试验得到结果xi1,xi2,...,xini,i=1,2,...,r,其被看作是来自第i个正态总体xi~N(μi,σ2),其中参数未知且每个样本都独立。从而单因素分析的数学模型可以表示为一种线性模型。
?????xij=μ+αi+Eij;i=1,2,...,r,j=1,2,..,niEij~N(0,σ2)且相互独立∑ri=1niαi=0
其中,μ是所有总体的均值,αi=μi?μ称为第i个水平的效应,Eij是随机误差。
1.正态性检验
在R语言中,使用Shapiro.test(x)可以对数据x进行正态性检验,参数x是要检验的数据集,它是长度在3~5000之间的向量。
2.方差齐次性检验
该方法是要检验数据在不同水平下,其方差是否相等。在R语言中,使用Bartlett.test()来实现。
方差分析的目的是,要比较因素A的r个水平下,试验结果是否有显著差异。以样本均值作为检验的标准,写出检验假设:
H0:α1=α2=...=α1,H1:α1,α2,...,αr不全相等
如果拒绝原假设H0,说明样本来自不同的正态总体,则由因素A的各个水平所造成均值的差异有统计意义;
如果不能拒绝原假设H0,说明样本来自相同的正态总体,因素的不同水平之间无差异。
案例1,某银行规定VIP客户的月均账户余额要达到100万元,并以此作为比较各个分行业绩的一项指标。这里的“分行”即为因子,账户余额是所要检验的指标,先从三个分行(对应三个水平A1、A2、A3)中,分别随机抽取7个VIP客户的账户,数据列在表(1)中。
表(1) 银行的三个分行A1、A2、A3
(a)正态性检验
//zheng.R
x1=c(103,101,98,110,105,100,106)
x2=c(113,107,108,116,114,110,115)
x3=c(82,92,84,86,84,90,88)
shapiro.test(x1)
shapiro.test(x2)
shapiro.test(x3)
效果如下:
图(1) 正态性检验的结果
由图(1)知,P(A1)=0.948 > 0.05,不能拒绝原假设,
P(A2)=0.4607 > 0.05,不能拒绝原假设,
P(A3)=0.7724 > 0.05,不能拒绝原假设,
而原假设H0是变量x服从正态分布,即A1、A2、A3都服从正态分布。
(b)方差齐次性检测
//qi.R
#方差齐性检验
x=c(x1,x2,x3)
account=data.frame(x,A=factor(rep(1:3,each=7)))
bartlett.test(x~A,data=account)
效果如下:
图(2) 方差齐次性检测
由于P=0.9341 > 0.05,不能拒绝原假设,而原假设H0是样本是“齐次的”,即三个样都是等方差的。
(c) 单因素分析
当数据符合正态性,和方差齐次之后,使用aov()就可以进行方差分析了。
//fen.R
a.aov=aov(x~A,data=account)
summary(a.aov)
plot(account$x~account$A)
如图(3)、图(4)所示:
图(3) 方差分析结果
图(4) 三个分行的箱线图