📜  如何在Python中执行布朗测试 - Forsythe 测试

📅  最后修改于: 2022-05-13 01:55:24.533000             🧑  作者: Mango

如何在Python中执行布朗测试 - Forsythe 测试

先决条件:参数和非参数方法,假设检验

在本文中,我们将研究在Python编程语言中执行 brown-Forsythe 测试的方法。 Brown-Forsythe 检验是一种基于对响应变量的变换执行方差分析 (ANOVA) 的组方差相等性的统计检验。

采用单向方差分析来查看 3 个或其他独立团队的平均值之间是否存在很大差异。单向方差分析的假设是样本来自的总体的方差相等。使用 Brown-Forsythe 检验的方法是通过以下假设:

  • 何:人口之间的差异是相等的。
  • 哈:人群之间的差异不相等。

注意:如果检验的 p 值小于某个显着性水平(例如,α = .05),那么我们拒绝原假设并得出方差不等于少数排除总体的结论。

获取所用数据的方差

在执行 Brown-Forsythe 检验之前,我们需要计算每组的方差,以便可以看出组之间的方差不同,但是要确定这些差异在统计上是否很大,我们可以执行 Brown-Forsythe 检验看一眼。

Python
import numpy as np
  
# Create data
group1 = [456, 564, 54, 554, 54, 51, 1, 12, 45, 5]
group2 = [65, 87, 456, 564, 456, 564, 564, 6, 4, 564]
  
# calculate variance of each group
print(np.var(group1), np.var(group2))


Python
# Create data
import scipy.stats as stats
group1 = [456, 564, 54, 554, 54, 51, 1, 12, 45, 5]
group2 = [65, 87, 456, 564, 456, 564, 564, 6, 4, 564]
  
# conduct the Wilcoxon-Signed Rank Test
stats.levene(group1, group2, center='median')


输出:

52101.43999999999 59121.2

使用 Levene()函数执行 brown Forsythe 测试

在这种执行 brown Forsythe 测试的方法中,用户需要首先调用 scipy.stats 库中的 Levene()函数并将所需的参数传递给它,然后该函数将返回测试统计值给用户。

例子:

在这个例子中,我们有两个组,每个组有 10 个元素,我们使用 Levene()函数在Python编程语言中获取其棕色 Forsythe 测试。

Python

# Create data
import scipy.stats as stats
group1 = [456, 564, 54, 554, 54, 51, 1, 12, 45, 5]
group2 = [65, 87, 456, 564, 456, 564, 564, 6, 4, 564]
  
# conduct the Wilcoxon-Signed Rank Test
stats.levene(group1, group2, center='median')

输出:

输出解释

因此,这里的检验统计量值为 0.33617,P 值为 0.569233。检验的 p 值似乎大于 0.05,因此我们无法拒绝检验的原假设。但是,在上面的示例中,我们通过了测试,但如果我们失败了,我们将应用以下步骤:

继续进行单向方差分析:

在这里,只要最大方差(59121.2)不大于最小方差(52101.43)的 4 倍,单向方差分析就是不等方差。

59121.2!=208405.72(52101.43*4)

执行 Kruskal-Wallis 检验:

如果最大方差与最小方差之比大于 4,我们可以选择执行 Kruskal-Wallis 检验。这考虑了单向方差分析的非参数等效项。最大方差与最小方差之比为 59121.2/52101.43 = 1.13,极小于 4,因此即使 Brown-Forsythe 检验表明方差不再相等,我们也可以继续进行单向方差分析。