如何在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()函数并将所需的参数传递给它,然后该函数将返回测试统计值给用户。
Syntax: levene(sample1, sample2, …s, center=’median’, proportiontocut=0.05)
Parameters:
- sample1, sample2, …: The sample data, possibly with different lengths. Only one-dimensional samples are accepted.
- center: Which function of the data to use in the test. The default is ‘median’.
- proportiontocutfloat, optional: When the center is ‘trimmed’, this gives the proportion of data points to cut from each end.
例子:
在这个例子中,我们有两个组,每个组有 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')
输出:
LeveneResult(statistic=0.33617324893734357, pvalue=0.5692334858602581)
输出解释
因此,这里的检验统计量值为 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 检验表明方差不再相等,我们也可以继续进行单向方差分析。