scipy.stats.

kruskal#

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

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

Kruskal-Wallis H检验测试了所有组的人口中位数相等的零假设。它是ANOVA的非参数版本。该检验适用于2个或更多独立样本,这些样本的大小可能不同。需要注意的是,拒绝零假设并不表明哪个组有所不同。需要在组间进行事后比较以确定哪些组是不同的。

参数:
示例1, 示例2, …array_like

可以给出两个或更多具有样本测量的数组作为参数。样本必须是一维的。

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

定义如何处理输入的 NaN。

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

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

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

int 或 None, 默认值: 0

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

keepdimsbool, 默认值: False

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

返回:
统计浮动

Kruskal-Wallis H 统计量,针对并列值进行了修正。

p值浮动

使用假设 H 具有卡方分布的检验的 p 值。返回的 p 值是卡方分布的生存函数在 H 处的值。

参见

f_oneway

单因素方差分析。

mannwhitneyu

对两个样本进行 Mann-Whitney 秩检验。

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, “Use of Ranks in One-Criterion Variance Analysis”, Journal of the American Statistical Association, Vol. 47, Issue 260, pp. 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)