如何在 Python 中执行 Brown-Forsythe 检验
Brown-Forsythe 检验是一种统计检验,用于确定两个或多个组的方差是否相等。虽然 Levene 检验使用与均值的绝对偏差,但 Brown-Forsythe 检验使用与中值的偏差。
检验中使用的原假设如下:
H0:各组(总体)的方差相等
备择假设是方差不相等:
H1:各组(总体)的方差不相等
为了执行检验,我们计算每个组的中值以及与中值的绝对偏差。然后,我们根据这些偏差的方差计算 F 统计量。假设计算出的 F 统计量大于来自F 分布表的临界值。在这种情况下,我们拒绝原假设并得出结论,即各组的方差不相等。
在 Python 中,scipy 和 statsmodels 库提供了一种执行 Brown-Forsythe 检验的方法。
需要注意的是,Brown-Forsythe 检验对异常值敏感,但比 Levene 检验对非正态性更稳健。如果数据非正态,通常建议使用 Brown-Forsythe 检验。
Python 中的 Brown-Forsythe 检验
语法
levene(sample1, sample2, …sampleN, center=’median’, proportiontocut=0.05)
参数
sample1, sample2, …sampleN − 样本数据,可能具有不同的长度。样本必须是一维的才能被接受。
Center − 要用于检验的数据函数。“Median”(中值)为默认值。
Proportiontocut − 当 center 为“trimmed”(截尾)时,表示要从每端移除的数据点数。
解释
在levene() 函数中,用户必须传递不同长度的一维样本数据以及参数 center 为“Median”(中值)。然后,此函数返回提供的样本的统计量和 p 值。
算法
从 scipy 中导入 levene 函数。
创建要对其执行 Brown-Forsythe 检验的数据样本。
将样本数据传递给 levene 函数以执行检验。
从函数中获取返回的统计量和 p 值。
您可以使用 scipy 库中的 stats.Levene 方法来执行 Brown-Forsythe 检验。
from scipy.stats import levene group1 = [1, 2, 3, 4, 5] group2 = [2, 3, 4, 5, 6] group3 = [3, 4, 5, 6, 7] statistic, pvalue = levene(group1, group2, group3) print("statistic: ", statistic) print("p-value: ", pvalue)
输出
statistic: 0.0 p-value: 1.0
在这里,您可以看到 p 值为 1,大于 0.05。这意味着我们可以接受原假设。因此,两组的方差相同。因此,备择假设被拒绝。
除了实现 Brown-Forsythe 检验外,我们还想澄清机器学习工程师通常存在的一个困惑。那就是 Brown-Forsythe 检验和 ANOVA 检验之间是如何相关的。
Brown-Forsythe 检验和 ANOVA 检验之间有什么关系?
Brown-Forsythe 检验和 ANOVA(方差分析)检验之间存在关联,因为它们都检验组均值之间的差异。但是,它们检验不同的假设并具有不同的应用。
ANOVA 是一种统计方法,用于检验两个或多个组的均值之间是否存在显著差异。它假设各组的方差相等,并且数据呈正态分布。ANOVA 用于确定两个或多个组的均值是否相等,并比较各组的方差。
Brown-Forsythe 检验是 Levene 检验的一种变体,Levene 检验使用与均值的绝对偏差,而 Brown-Forsythe 检验使用与中值的偏差。另一方面,Brown-Forsythe 检验是用于检验方差齐性的一种检验,这是 ANOVA 的一个必要假设。它用于确定两个或多个组的方差是否相等。
在实践中,通常在执行 ANOVA 之前执行 Brown-Forsythe 检验以检查是否满足方差相等的假设。如果方差不相等,则可能适合使用非参数检验(如 Kruskal-Wallis 检验或 Welch 的 ANOVA 检验)而不是常规检验。
Brown-Forsythe 检验的用例
Brown-Forsythe 检验被用于各个领域,例如生物学、医学、心理学、社会科学和工程学,以检验不同组的方差是否相等。一些常见的用例包括:
比较两个或多个样本的方差 − Brown-Forsythe 检验可以确定两个或多个样本的方差是否相等。例如,在医学研究中,该检验可用于比较不同患者组的血压测量值的方差。
在执行 ANOVA 之前检验方差齐性 − 由于 Brown-Forsythe 检验是用于检验方差齐性的一种检验,因此它可以用来检查在执行 ANOVA 之前是否满足方差相等的假设。这可以确保 ANOVA 的结果有效。
检验非正态分布数据的方差是否相等 − Brown-Forsythe 检验比 Levene 检验对非正态性更稳健。它可以用于检验非正态分布数据的方差是否相等。
比较重复测量设计中的方差 − 在进行重复测量设计实验时,使用 Brown-Forsythe 检验来检查各组之间方差的齐性可能很有用。
制造业中的质量控制 − Brown-Forsythe 检验可以用于检查不同生产批次的方差是否相等,以确保产品的质量一致。
结论
总之,Brown-Forsythe 检验是一种用于检测数据集中是否存在异方差的有用统计方法。可以使用 scipy 库在 Python 中轻松实现它。检验结果可以为有关对数据执行适当统计分析的决策提供依据。通过了解检验的假设并解释结果,研究人员可以更好地理解其数据的分布并对其分析做出明智的决策。