scipy.stats.

ranksums#

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

计算两个样本的Wilcoxon秩和统计量。

Wilcoxon 秩和检验用于检验两个测量集来自同一分布的零假设。备择假设是一个样本中的值比另一个样本中的值更大的可能性更高。

此测试应用于比较来自连续分布的两个样本。它不处理 x 和 y 测量中的并列情况。如需处理并列情况并选择连续性校正,请参见 scipy.stats.mannwhitneyu

参数:
x,yarray_like

两个样本的数据。

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

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

  • ‘two-sided’: 其中一个分布(基础的 xy)在统计上大于另一个。

  • ‘less’: x 的基础分布在统计上小于 y 的基础分布。

  • ‘greater’: x 的基础分布在统计上大于 y 的基础分布。

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的维度保留在结果中。通过此选项,结果将正确地与输入数组进行广播。

返回:
统计浮动

在大样本近似下,秩和统计量服从正态分布的检验统计量。

p值浮动

测试的 p 值。

注释

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

参考文献

示例

我们可以通过计算Wilcoxon秩和统计量来检验两个独立且大小不等的样本是否来自同一分布的假设。

>>> import numpy as np
>>> from scipy.stats import ranksums
>>> rng = np.random.default_rng()
>>> sample1 = rng.uniform(-1, 1, 200)
>>> sample2 = rng.uniform(-0.5, 1.5, 300) # a shifted distribution
>>> ranksums(sample1, sample2)
RanksumsResult(statistic=-7.887059,
               pvalue=3.09390448e-15) # may vary
>>> ranksums(sample1, sample2, alternative='less')
RanksumsResult(statistic=-7.750585297581713,
               pvalue=4.573497606342543e-15) # may vary
>>> ranksums(sample1, sample2, alternative='greater')
RanksumsResult(statistic=-7.750585297581713,
               pvalue=0.9999999999999954) # may vary

p 值小于 0.05 表明,在 5% 显著性水平下,该检验拒绝了原假设。