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)