scipy.stats.

kruskal#

scipy.stats.kruskal(*samples, nan_policy='propagate', axis=0, keepdims=False)[source]#

计算独立样本的 Kruskal-Wallis H 检验。

Kruskal-Wallis H 检验检验所有组的总体中位数是否相等的原假设。这是一个非参数版本的方差分析。该检验适用于 2 个或更多个独立样本,这些样本的大小可能不同。请注意,拒绝原假设并不表示哪个组有所不同。需要对组进行事后比较以确定哪些组是不同的。

参数:
sample1、sample2、...array_like

作为参数可以提供两个或多个包含样本测量的数组。样本必须是一维的。

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

定义如何处理输入的 NaN。

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

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

  • 提升:如果存在 NaN,将提升 ValueError

axis整数或 None,默认值:0

如果为整数,则为计算统计数据的输入轴。输入的每个轴切片(例如行)的统计数据将显示在输出的对应元素中。如果为 None,则计算统计数据前,输入将被摊平处理。

keepdims布尔值,默认值:False

如果该值为 True,则缩减的轴将以一维大小保留在结果中。使用该选项,结果将根据输入数组正确地进行广播。

返回:
statistic浮点数

针对平局修正的 Kruskal-Wallis H 统计数据。

pvalue浮点数

假设 H 具有卡方分布,使用此假设进行检验的 p 值。返回的 p 值是针对 H、对卡方分布进行评估后的生存函数。

另请参阅

f_oneway

单因素方差分析。

mannwhitneyu

两个样本的秩和检验。

friedmanchisquare

对重复测量进行的 Friedman 检验。

注释

由于假设 H 具有卡方分布,因此每一组中的样本数不能太少。一项常规准则是每一组的测量值必须至少为 5。

从 SciPy 1.9 开始,np.matrix 输入(不推荐用于新代码)会在执行计算前被转换为 np.ndarray。在这种情况下,输出将是标量、或相应形状的 np.ndarray,而不是 2D np.matrix。类似地,虽然受了掩码的数组的掩码元素被忽略,输出将是标量或 np.ndarray,而不是受了 mask=False 掩码的数组。

参考

[1]

W. H. Kruskal & W. W. Wallis,“单判定标准方差分析中的等级使用”,《美国统计协会杂志》,第 47 卷,第 260 期,第 583-621 页,1952 年。

示例

>>> from scipy import stats
>>> x = [1, 3, 5, 7, 9]
>>> y = [2, 4, 6, 8, 10]
>>> stats.kruskal(x, y)
KruskalResult(statistic=0.2727272727272734, pvalue=0.6015081344405895)
>>> x = [1, 1, 1]
>>> y = [2, 2, 2]
>>> z = [2, 2]
>>> stats.kruskal(x, y, z)
KruskalResult(statistic=7.0, pvalue=0.0301973834223185)