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
,而不是 2Dnp.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)