brunnermunzel#
- scipy.stats.brunnermunzel(x, y, alternative='two-sided', distribution='t', nan_policy='propagate', *, axis=0, keepdims=False)[source]#
計算樣本 x 和 y 的 Brunner-Munzel 檢定。
Brunner-Munzel 檢定是一種非參數檢定,用於檢驗虛無假設:當從每個群組中依序取值時,在兩個群組中獲得大值的機率相等。與 Wilcoxon-Mann-Whitney U 檢定不同,此檢定不需要兩個群組等變性的假設。請注意,此檢定不假設分佈相同。此檢定適用於兩個獨立樣本,它們可能具有不同的大小。
- 參數:
- x, yarray_like
樣本陣列,應為一維。
- alternative{‘two-sided’, ‘less’, ‘greater’}, 選項性
定義對立假設。以下選項可用(預設為 ‘two-sided’)
‘two-sided’
‘less’:單尾
‘greater’:單尾
- distribution{‘t’, ‘normal’}, 選項性
定義如何取得 p 值。以下選項可用(預設為 ‘t’)
‘t’:通過 t 分佈取得 p 值
‘normal’:通過標準常態分佈取得 p 值。
- nan_policy{‘propagate’, ‘omit’, ‘raise’}
定義如何處理輸入的 NaN。
propagate
:如果 NaN 出現在計算統計量的軸切片(例如,列)中,則輸出中對應的條目將為 NaN。omit
:執行計算時將省略 NaN。如果沿著計算統計量的軸切片中剩餘的資料不足,則輸出中對應的條目將為 NaN。raise
:如果存在 NaN,將引發ValueError
。
- axisint 或 None,預設值:0
如果為 int,則為計算統計量所沿輸入的軸。輸入的每個軸切片(例如,列)的統計量將出現在輸出的對應元素中。如果為
None
,則輸入將在計算統計量之前被展平。- keepdimsbool,預設值:False
如果設定為 True,則縮減的軸將在結果中保留為大小為一的維度。使用此選項,結果將針對輸入陣列正確廣播。
- 返回:
- statisticfloat
Brunner-Munzer W 統計量。
- pvaluefloat
p 值,假設 t 分佈。單尾或雙尾,取決於 alternative 和 distribution 的選擇。
參見
mannwhitneyu
兩個樣本的 Mann-Whitney 秩檢定。
註解
Brunner 和 Munzel 建議當資料大小為 50 或更小時,通過 t 分佈估計 p 值。如果大小小於 10,則最好使用置換 Brunner Munzel 檢定(參見 [2])。
從 SciPy 1.9 開始,
np.matrix
輸入(不建議用於新程式碼)在執行計算之前會轉換為np.ndarray
。在這種情況下,輸出將是標量或適當形狀的np.ndarray
,而不是 2Dnp.matrix
。同樣地,雖然遮罩陣列的遮罩元素會被忽略,但輸出將是標量或np.ndarray
,而不是具有mask=False
的遮罩陣列。參考文獻
[1]Brunner, E. 和 Munzel, U. “The nonparametric Benhrens-Fisher problem: Asymptotic theory and a small-sample approximation”。Biometrical Journal。第 42 卷 (2000): 17-25。
[2]Neubert, K. 和 Brunner, E. “A studentized permutation test for the non-parametric Behrens-Fisher problem”。Computational Statistics and Data Analysis。第 51 卷 (2007): 5192-5204。
範例
>>> from scipy import stats >>> x1 = [1,2,1,1,1,1,1,1,1,1,2,4,1,1] >>> x2 = [3,3,4,3,1,2,3,1,1,5,4] >>> w, p_value = stats.brunnermunzel(x1, x2) >>> w 3.1374674823029505 >>> p_value 0.0057862086661515377