scipy.stats.

bws_test#

scipy.stats.bws_test(x, y, *, alternative='two-sided', method=None)[source]#

在两个相互独立的样本上执行 Baumgartner-Weiss-Schindler 检验。

Baumgartner-Weiss-Schindler (BWS) 检验是对原假设的非参数检验。原假设认为样本 x 的基础分布与样本 y 的基础分布相同。与 Kolmogorov-Smirnov、Wilcoxon 和 Cramer-Von Mises 检验不同,BWS 检验按累计分布函数 (CDF) 中差异方差对积分加权,强调分布的尾部,从而在许多应用中提高了检验的检验力。

参数:
x, y数组模拟

样本的 1-d 数组。

alternative{‘two-sided’, ‘less’, ‘greater’}, 可选

定义备择假设。默认值为“two-sided”。令 F(u)G(u) 分别为 xy 的基础分布的累积分布函数。以下备择假设可供使用

  • ‘two-sided’:分布不相等,即对于至少一个 uF(u) ≠ G(u)

  • ‘less’:x 的分布基础小于 y 的分布基础,即对所有 uF(u) >= G(u)

  • ‘greater’:x 的分布基础大于 y 的分布基础,即对所有 uF(u) <= G(u)

在限制性更强的假设集合中,备选假设可以用分布位置来表示;请参见 [2] 第 5.1 节。

method置换法,可选

配置用于计算 p 值的方法。默认值为默认 PermutationMethod 对象。

返回:
res置换检验结果
带属性的对象
statistic浮点数

数据的观察检验统计量。

pvalue浮点数

给定备选的 p 值。

null_distributionndarray

在零假设下产生的检验统计量值。

注释

alternative=='two-sided' 时,统计量由 [1] 第 2 节中给出的方程式定义。该统计量不适用于单边备选;在这种情况下,统计量是 [1] 第 2 节中方程式给出的值的否定值。因此,当第一个样本的分布大于第二个样本的分布时,统计量往往为正值。

参考

[1] (1,2,3,4,5)

Neuhäuser,M. (2005)。基于 Baumgartner-Weiss-Schindler 统计量的确切检验:一项调查。统计论文,第 46 卷第 1 期,第 1-29 页。

[2]

Fay, M. P. 和 Proschan, M. A. (2010)。Wilcoxon-Mann-Whitney 检验还是 t 检验?关于假设检验和决策规则的多重解释。统计学调查,第 4 卷,第 1 页。

示例

我们遵循表 3 的示例 [1]: 将 14 名儿童随机分成两组。针对特定测试,其排名如下。

>>> import numpy as np
>>> x = [1, 2, 3, 4, 6, 7, 8]
>>> y = [5, 9, 10, 11, 12, 13, 14]

我们使用 BWS 测试来评估两组之间是否存在统计意义上的差异。原假设是两组之间的性能分布没有差异。我们决定需要 1% 的显著性水平来拒绝原假设,支持分布不同的备选假设。由于样本数极小,我们可以将观测到的检验统计量与原假设下检验统计量的确切分布进行比较。

>>> from scipy.stats import bws_test
>>> res = bws_test(x, y)
>>> print(res.statistic)
5.132167152575315

这与 \(B = 5.132\) 一致,如 [1] 中所述。由 bws_test 生成的p值也与 [1] 中所述的 \(p = 0.0029\) 一致。

>>> print(res.pvalue)
0.002913752913752914

由于 p 值低于 1% 的阈值,因此我们将其视为反对原假设的证据,支持两组之间存在性能差异的备选假设。