scipy.stats.

kruskal#

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

計算獨立樣本的 Kruskal-Wallis H 檢定。

Kruskal-Wallis H 檢定用於檢驗所有組別的母體中位數相等的虛無假設。它是 ANOVA 的非參數版本。此檢定適用於 2 個或更多獨立樣本,這些樣本的大小可能不同。請注意,拒絕虛無假設並不表示哪些組別存在差異。需要組間的事後比較才能確定哪些組別不同。

參數:
sample1, sample2, …array_like (類陣列)

可以將兩個或更多包含樣本測量的陣列作為引數給定。樣本必須是一維的。

nan_policy{‘propagate’, ‘omit’, ‘raise’} (NaN 值處理策略)

定義如何處理輸入的 NaN 值。

  • propagate:如果 NaN 值存在於計算統計量的軸切片(例如,列)中,則輸出中對應的條目將為 NaN。

  • omit:在執行計算時將省略 NaN 值。如果沿著計算統計量的軸切片中剩餘的資料不足,則輸出中對應的條目將為 NaN。

  • raise:如果存在 NaN 值,將引發 ValueError 錯誤。

axisint 或 None,預設值:0

如果是整數,則為沿著輸入計算統計量的軸。輸入的每個軸切片(例如,列)的統計量將出現在輸出的對應元素中。如果為 None,則在計算統計量之前,輸入將被展平。

keepdimsbool,預設值:False

如果設定為 True,則縮減的軸將保留在結果中,作為大小為一的維度。使用此選項,結果將正確地廣播到輸入陣列。

回傳值:
statistic (統計量)float (浮點數)

Kruskal-Wallis H 統計量,已針對 ties (結) 進行校正。

pvalue (p 值)float (浮點數)

此檢定的 p 值基於 H 具有卡方分佈的假設。回傳的 p 值是在 H 處評估的卡方分佈的存活函數。

另請參閱

f_oneway

單因子變異數分析 (1-way ANOVA)。

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)