Levene检验是一种推断性统计方法,用于评估一个变量在两个或多个组之间的方差是否相等,特别是在数据呈非正态分布时。在进行方差分析(ANOVA)等测试之前,该检验用于检查方差齐性(即方差相等)的假设。
在本文中,让我们一起来探索如何在R语言中执行Levene检验。
Levene检验的统计假设
假设是对给定问题的陈述,而假设检验是一种基于实验数据做出决策的统计方法。它涉及评估关于总体的两个相互排斥的陈述,以确定哪个陈述最能得到样本数据的支持。对于Levene检验,统计假设如下:
原假设:
所有总体的方差都相等
> H0 :\sigma1^2 = \sigma2^2 = …=\sigman^2
备择假设:
至少有两个方差不相等
> H1 : \sigmai^2
eq \sigma_j^2
Levene检验的检验统计量为:
> W = \frac{\left ( N – k \right )\sum{i=1}^{K}N{i} \left ( Z{i} – Z.. \right )^2}{ \left ( K-1 \right )\sum{i=1}^{K} \sum{j=1}^{Ni}\left ( Z{ij}- Zi \right )^2}
R语言提供了一个car包中的函数 leveneTest(),我们可以使用它来计算Levene检验。
> 语法: leveneTest(formula, dataset)
1. 单个自变量的Levene检验
让我们考虑R语言内置的PlantGrowth数据集。该数据集给出了三组(每组10批)植物的干重,其中每组10批植物接受了不同的处理。weight变量表示这批植物的重量,group变量表示接受的处理方式(ctrl, trt1, 或 trt2)。为了查看PlantGrowth数据集的随机5行数据,我们可以使用dplyr库中的sample_n()函数。
R
CODEBLOCK_eb40c467
输出结果:
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250416161305853147/SampleData.png">SampleDataSample_Data
我们将在0.05的显著性水平(即第95百分位数)下检验原假设,这里仅考虑一个自变量。
R
CODEBLOCK_af4456ac
输出结果:
!Output-1Output
从结果中我们可以观察到,p值 = 0.34,这大于我们设定的0.05显著性水平。因此,我们没有足够的证据拒绝原假设。这意味着在0.05的显著性水平下,各样本之间的方差是相等的。
2. 多个自变量的Levene检验:
让我们考虑R语言内置的ToothGrowth数据集
R
CODEBLOCK_af0155dc
输出结果:
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250416161954358100/SampleData-2.webp">SampleData-2Sample Data
如果想要使用多个自变量进行检验,则必须使用interaction()函数将多个因子组合为一个包含所有因子组合的单一变量。
R
CODEBLOCK_c036eb42
输出结果:
!Output-2Output
从结果中我们可以观察到,p值 = 0.14,这大于我们设定的0.05显著性水平。因此,我们没有足够的证据拒绝原假设。这意味着在0.05的显著性水平下,各样本之间的方差是相等的。
> 检验组间方差齐性的其他常用方法包括:
>
> – F检验
> – Bartlett检验
> – Levene检验