方差齐性检验

问题

在我们接触过的许多统计检验中,都假设了总体的同方差性,这样的假设在统计研究中相当重要。那么在R中,我们该如何检验样本变量之间的方差齐性(同方差性)呢?

指南

检验数据方差齐性的方法有很多,本节将主要介绍以下三种:

  • Bartlett检验 – 如果我们的数据服从正态分布,那么这种方法将是最为适用的。对于正态分布的数据,这种检验极为灵敏;而当数据为非正态分布时,使用该方法则很容易导致假阳性误判。
  • Levene检验 – 相较于Bartlett检验,这一方法更为稳健。这一方法被封装于car程序包中。
  • Fligner-Killeen检验 – 这是一个非参数的检验方法,完全不依赖于对分布的假设。

对于上述所有的检验,我们的原假设都为“变量的总体方差全部相同”;备择假设则为“至少有两个变量的总体方差时不同的”。

示例数据

下面的例子中我们用到了InsectSprays数据集和ToothGrowth数据集。其中,InsectSprays数据集中只有一个自变量,而在ToothGrowth数据集则有两个自变量。

绘制数据集的简单箱线图:

大致一看,我们会直观地认为两个数据集中的数据都是异方差的,接下来,我们需要用适合的方法来实际地去检验它。

Bartlett检验

对于单一自变量:

对于有多个自变量的情况,我们需要运用interaction()函数来将多个自变量折叠为一个单一的变量用于表示不同变量因素之间的组合。如果不这么做的话,检验的自由度将会发生错误,进而导致我们得到错误的p值。

下面的过程仅对不同dose中的len进行了方差齐性检验,并没有考虑到变量supp。

Levene检验

leveneTest函数包含于car程序包中。

对于单一的自变量:

多个自变量的情况,在这种方法中我们无需使用interaction函数:

Fligner-Killeen检验

对于单一的自变量:

fligner.test函数与bartlett.test函数有着相同的缺点,在存在多个自变量时,检验前我们必须要使用interaction()函数将多个变量折叠为单一的变量:

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注