如何在 Python 中执行 Brown - Forsythe 检验

pythonserver side programmingprogramming

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', ratiotocut=0.05)

参数

  • sample1, sample2, …sampleN − 样本数据,可能有各种长度。样本必须只有一个维度才能被接受。

  • 中心 − 测试要使用哪个数据函数。 "中位数"为默认值。

  • Proportiontocut − 当中心被"修剪"时,指示从每端移除的数据点数。

解释

levene() 函数中,用户必须将不同长度的一维样本数据与参数中心一起作为"中位数"传递。然后,此函数返回所提供样本的统计数据和 p_value。

算法

  • 从 scipy 导入 levene 函数。

  • 创建要执行 Brown-Forsythe 检验的数据样本。

  • 将样本数据传递给 levene 函数以执行检验。

  • 从函数中获取统计数据和 p_value。

您可以使用 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 是一种统计方法,用于检验两个或多个组的均值之间是否存在显着差异。它假定组的方差相等,并且数据呈正态分布。方差分析用于确定两个或多个组的均值是否相等,并比较各组的方差。

Brown-Forsythe 检验是 Levene 检验的一种变体,它使用与均值的绝对偏差,而 Brown-Forsythe 检验使用与中位数的偏差。另一方面,Brown-Forsythe 检验是方差齐性的检验,这是方差分析的必要假设。它用于确定两个或多个组的方差是否相等。

在实践中,通常在方差分析之前进行 Brown-Forsythe 检验,以检查是否满足方差相等的假设。如果方差不相等,则可能适合使用非参数检验(如 Kruskal-Wallis 检验或 Welch 的 ANOVA 检验)而不是常规检验。

Brown-Forsythe 检验的用例

Brown-Forsythe 检验用于生物学、医学、心理学、社会科学和工程学等各个领域,以检验不同组中的方差是否相等。一些常见用例包括 −

  • 比较两个或多个样本的方差 − Brown-Forsythe 检验可以确定两个或多个样本的方差是否相等。例如,在医学研究中,该检验可用于比较不同组患者的血压测量方差。

  • 在执行方差分析之前测试方差齐性 − 由于 Brown-Forsythe 检验是方差齐性检验,因此可以在执行方差分析之前使用它来检查是否满足方差相等的假设。这可确保方差分析的结果有效。

  • 在非正态分布数据中测试方差相等 − Brown-Forsythe 检验比 Levene 检验对非正态性更具​​鲁棒性。它可用于检验非正态分布数据中的方差是否相等。

  • 比较重复测量设计中的方差 − 在使用重复测量设计进行实验时,使用 Brown-Forsythe 检验来检查各组之间的方差是否均匀会很有用。

  • 制造中的质量控制 − Brown-Forsythe 检验可用于检查不同生产批次中的方差是否相等,以确保产品质量一致。

结论

总之,Brown-Forsythe 检验是一种有用的统计方法,可用于检测数据集中是否存在异方差。它可以使用 scipy 库在 Python 中轻松实现。测试结果可以为对数据执行适当的统计分析提供决策参考。通过理解测试的假设和解释结果,研究人员可以更好地了解其数据的分布并对分析做出明智的决策。


相关文章