在方差分析中,有三个基本的假设:
(1) 正态假设。对于因素的每个水平,其观测值都是来自正态总体的随机样本;
(2) 方差齐次假设。各个总体的方差相同;
(3) 独立假设。观测值之间都是独立的。
设试验中的因素
A
,有
其中, μ 是所有总体的均值, αi=μi−μ 称为第 i 个水平的效应,
1.正态性检验
在R语言中,使用Shapiro.test(x)可以对数据x进行正态性检验,参数x是要检验的数据集,它是长度在3~5000之间的向量。
2.方差齐次性检验
该方法是要检验数据在不同水平下,其方差是否相等。在R语言中,使用Bartlett.test()来实现。
方差分析的目的是,要比较因素 A 的
如果拒绝原假设 H0 ,说明样本来自不同的正态总体,则由因素 A 的各个水平所造成均值的差异有统计意义;
如果不能拒绝原假设
案例1,某银行规定VIP客户的月均账户余额要达到100万元,并以此作为比较各个分行业绩的一项指标。这里的“分行”即为因子,账户余额是所要检验的指标,先从三个分行(对应三个水平 A1、A2、A3 )中,分别随机抽取7个VIP客户的账户,数据列在表(1)中。
(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)知,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)
效果如下:
由于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)中, A 表示因子,Residuals表示残差,
Df 表示自由度
SumSq 表示平方和
Mean Sq 表示均方和
F value F 表示F检验统计量的值
Pr(>F) 表示概率。
由于P=8.446e-10 < 0.05,说明拒绝原假设,即不同分行
同样,在图(4)中,可以看到三个分行的 Me (中位数,箱线图里最粗的黑线,就是中位数,记为 Me )是明显不同的,其中分行 A1 的 Me =85,分行 A2 的 Me =103,分行 A3 的 Me =114,,也就是分行 A1、A2、A3 的经济业绩有显著差别。