第四部分的卡方检验是研究类别变量之间的关系,而这一部分的方差分析则是研究类别型自变量与数值型因变量之间的关系,它在形式上是比较多个总体的均值是否相等

从形式上看,方差分析与之前的t检验z检验区别不大,都是检验均值是否相等,但在比较多个均值时,t检验需要做多次两两比较的假设检验,而方差分析只需要一次,并且方差分析中是将所有的样本信息结合在一起,增加了分析的可靠性。

下面我们仍旧从三个问题出发来研究一下方差分析:

  • 方差分析到底是啥?
  • 方差分析从哪里来?
  • 方差分析要到哪里去?(有什么用?)

这里并不打算按照这个顺序来分析这三个问题,因为很多理论都是为了解决某些实际问题而提出的,理论只是对解决方法的高度概括,从实际问题出发,反而可以更好地理解为什么要研究这些理论。下面将从以下几个方面来回答这些问题:

  • 1、为什么要做方差分析?(方差分析有什么用?)
  • 2、方差分析到底是啥?从哪里来的?
  • 3、方差分析的基本假定
  • 4、单因素方差分析
1、为什么要做方差分析?

这里举个实际的例子来引出方差分析,这样会对方差分析具体在做什么有更深的印象:

为了研究客户满意度是否与行业有关,消费者协会对各个行业抽样了数量不等的公司,分别统计了各个公司的被投诉次数:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_统计


那么基于以上的数据,你是否可以判断客户的投诉次数与行业有关。

问题其实比较清晰,就是比较这四个行业之间被投诉的均值是否相等,这里的行业就是类别型自变量,被投诉次数就是数值型因变量。所以方差分析要研究的就是行业对被投诉次数是否有显著影响。

2、方差分析到底是啥?从哪里来的?

方差分析的思想来自于误差的分解,对于来自同一个分布的数据,抽样带来的误差其实只有随机误差,即随机抽样抽到的不同值与均值之间的差距,以上面这个例子为例,我们可以把各个行业内部的抽样数据认为是来自同一个分布,即零售业不同企业有不同的被投诉次数,他们之间的不同可以认为只是随机误差,也被称为组内误差(SSE)

不同行业之间误差被称为组间误差(SSA),如果被投诉次数与行业无关,可以认为不同行业的抽样也是来自于同一总体分布的抽样,那么此时误差只有随机误差。而如果不同行业的抽样并不是来自同一总体分布,意味着被投诉次数与行业有关,那么此时组间误差包括随机误差和系统误差,这个系统误差就是由于行业这个因素带来。

综合以上,我们可以将总体误差(SST)分为组间误差和组内误差

当我们检验不同行业的均值是否相等时,其实就是检验组间误差是不是过大,包含了一定量的系统误差。

3、方差分析的基本假定

有三个基本假定:

每个总体都应服从正态分布;

每个总体的方差必须相同;

观测值是独立的;

其中第三点一般都满足,前两点需要借助样本值做一些检验的工作;

4、单因素方差分析(F检验)

如果只涉及一个类别的自变量的方差分析,则称其为单因素方差分析,最上面的例子就是一个单因素方差分析。

首先提出假设:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_02

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_数据_03不全相等

构造统计量:

1) 计算个样本的均值

即计算各个行业的均值:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_04


2) 计算总均值即计算总体均值:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_05

这里:
重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_方差分析_06
重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_数据_07
求这四个平均值的平均值同样得到47.87。
所以,总均值可以看成所有数据点的均值,或每组均值的均值。

3) 计算各误差平方和

  • 总平方和:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_08

  • 组间平方和:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_方差分析_09

  • 组内平方差:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_统计_10

并且:重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_统计_11

4) 计算统计量

SST的自由度为n-1,n为观测值的个数;

SSA的自由度为k-1,k为因素水平的个数;

SSE的自由度为n-k。

平方和

自由度

自由度计算公式

SST= 4164.608

22

n - 1

SSA = 1456.608

3

k - 1

SSE = 2708

19

n - k

故:
总平方和 = 组内平方和 + 组间平方和

我们其实是要比较SSA与SSE,因为我们确认SSE,即组内误差来自随机误差,那我们就以SSE为基准,去比较SSA,若二者相差不大,则认为组间误差也仅仅是随机误差而没有系统误差,而由于二者之间的数量级不一样(自由度),难以直接比较,所以我们可以比较二者的均方误差:

组间均方误差:重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_12 服从 重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_方差分析_13

组内均方误差: 重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_方差分析_14 服从 重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_15

于是,我们构造重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_统计_16统计量:重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_数据_17

计算可得统计量的值为:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_方差分析_18

这里定义的统计量叫F统计量,它服从F分布,这里可以认为它是两个重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_19分布之比,两者的自由度可以相等,也可以不等。
重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_统计_20
F统计量是组间平方和除以其自由度k-1,也被称为组间均方误差(MSA),然后除以组内平方和除以其自由度n-k:
重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_21

如果分子比分母大很多,那就说明波动大多数来自于各组之间,较少来自于各组之内,这时我们应该相信,总体均值之间存在差异,如果这个数字很大,那就意味着零假设成立的概率较低;
如果这个数字很小,分母更大,那就意味着组内波动比组间波动在总波动中占比更多,这意味着差异可能只是随机产生的,这就更难拒绝零假设。

对于这个问题,重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_方差分析_22,从下面的F分布表中可以读出临界F值:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_统计_23


这里从F分布统计表中读出的临界F值是:

重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_24

因为重复测量方差分析 R语言代码 正态分布 方差齐性 球形检验_系统误差_25,所以,在零假设前提下,得到观测值的概率非常低,因此我们拒绝零假设,相信很有可能总体均值存在差异。

参考文献:
[1] 方差分析 [2] 统计 可汗学院