scipy.stats.

ansari#

scipy.stats.ansari(x, y, alternative='two-sided', *, axis=0, nan_policy='propagate', keepdims=False)[源代码][源代码]#

执行 Ansari-Bradley 检验以比较尺度参数是否相等。

Ansari-Bradley 检验([1][2])是一种非参数检验,用于检验从两个样本中抽取的分布的尺度参数是否相等。原假设表明,x 的潜在分布的尺度与 y 的潜在分布的尺度的比率为 1。

参数:
x, yarray_like

样本数据的数组。

替代方案{‘双侧’, ‘小于’, ‘大于’}, 可选

定义备择假设。默认是’双侧’。以下选项可用:

  • ‘双面’: 比例尺的比例不等于1。

  • ‘less’: 比例小于1。

  • ‘greater’: 比例大于1。

Added in version 1.7.0.

int 或 None, 默认值: 0

如果是一个整数,表示输入数据中要计算统计量的轴。输入数据的每个轴切片(例如行)的统计量将出现在输出的相应元素中。如果为 None,则在计算统计量之前会将输入数据展平。

nan_policy{‘propagate’, ‘omit’, ‘raise’}

定义如何处理输入的 NaN。

  • propagate: 如果在计算统计量的轴切片(例如行)中存在 NaN,则输出的相应条目将为 NaN。

  • omit: 在执行计算时,NaN 将被省略。如果在计算统计量的轴切片中剩余的数据不足,则输出的相应条目将为 NaN。

  • raise: 如果存在 NaN,将引发 ValueError

keepdimsbool, 默认值: False

如果设置为True,被减少的轴将作为尺寸为1的维度保留在结果中。通过此选项,结果将正确地与输入数组进行广播。

返回:
统计浮动

Ansari-Bradley 检验统计量。

p值浮动

假设检验的p值。

参见

fligner

一种用于检验 k 个方差相等的非参数检验

mood

用于检验两个尺度参数相等的非参数检验

注释

当样本量均小于55且没有平局时,给出的p值是精确的;否则,使用p值的正态近似。

从 SciPy 1.9 开始,np.matrix 输入(不推荐用于新代码)在计算执行前被转换为 np.ndarray。在这种情况下,输出将是一个标量或适当形状的 np.ndarray,而不是一个 2D 的 np.matrix。同样,虽然掩码数组的掩码元素被忽略,但输出将是一个标量或 np.ndarray,而不是一个 mask=False 的掩码数组。

参考文献

[1]

Ansari, A. R. 和 Bradley, R. A. (1960) 秩和检验用于分散性,数理统计年鉴,31, 1174-1189。

[2]

Sprent, Peter 和 N.C. Smeeton. 应用非参数统计方法. 第3版. Chapman and Hall/CRC. 2001. 第5.8.2节.

[3]

Nathaniel E. Helwig 的 “非参数离散与相等性检验” 在 http://users.stat.umn.edu/~helwig/notes/npde-Notes.pdf

示例

>>> import numpy as np
>>> from scipy.stats import ansari
>>> rng = np.random.default_rng()

对于这些示例,我们将创建三个随机数据集。前两个数据集的大小分别为35和25,它们是从均值为0、标准差为2的正态分布中抽取的。第三个数据集的大小为25,它从标准差为1.25的正态分布中抽取。

>>> x1 = rng.normal(loc=0, scale=2, size=35)
>>> x2 = rng.normal(loc=0, scale=2, size=25)
>>> x3 = rng.normal(loc=0, scale=1.25, size=25)

首先我们将 ansari 应用于 x1x2。这些样本来自同一分布,因此我们预期 Ansari-Bradley 检验不会导致我们得出分布的尺度不同的结论。

>>> ansari(x1, x2)
AnsariResult(statistic=541.0, pvalue=0.9762532927399098)

当p值接近1时,我们不能得出结论认为尺度之间存在显著差异(如预期)。

现在对 x1x3 应用测试:

>>> ansari(x1, x3)
AnsariResult(statistic=425.0, pvalue=0.0003087020407974518)

在零假设(即尺度相等)下,观察到如此极端的统计值的概率仅为0.03087%。我们将此视为反对零假设而支持备择假设的证据:样本所来自的分布的尺度不相等。

我们可以使用 alternative 参数来执行单尾检验。在上面的例子中,x1 的尺度大于 x3,因此 x1x3 的尺度比率大于 1。这意味着当 alternative='greater' 时,p 值应该接近 0,因此我们应该能够拒绝原假设:

>>> ansari(x1, x3, alternative='greater')
AnsariResult(statistic=425.0, pvalue=0.0001543510203987259)

正如我们所见,p值确实非常低。因此,使用 alternative='less' 应该会产生一个较大的p值:

>>> ansari(x1, x3, alternative='less')
AnsariResult(statistic=425.0, pvalue=0.9998643258449039)