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