scipy.stats.

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 分佈。單尾或雙尾,取決於 alternativedistribution 的選擇。

參見

mannwhitneyu

兩個樣本的 Mann-Whitney 秩檢定。

註解

Brunner 和 Munzel 建議當資料大小為 50 或更小時,通過 t 分佈估計 p 值。如果大小小於 10,則最好使用置換 Brunner Munzel 檢定(參見 [2])。

從 SciPy 1.9 開始,np.matrix 輸入(不建議用於新程式碼)在執行計算之前會轉換為 np.ndarray。在這種情況下,輸出將是標量或適當形狀的 np.ndarray,而不是 2D np.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