如何在 Python 中執行 Brown-Forsythe 檢驗


Brown-Forsythe 檢驗是一種統計檢驗,用於確定兩個或多個組的方差是否相等。雖然 Levene 檢驗使用與均值的絕對偏差,但 Brown-Forsythe 檢驗使用與中值的偏差。

檢驗中使用的原假設如下:

H0:各組(總體)的方差相等

備擇假設是方差不相等:

H1:各組(總體)的方差不相等

為了執行檢驗,我們計算每個組的中值以及與中值的絕對偏差。然後,我們根據這些偏差的方差計算 F 統計量。假設計算出的 F 統計量大於來自F 分佈表的臨界值。在這種情況下,我們拒絕原假設並得出結論,即各組的方差不相等。

在 Python 中,scipy 和 statsmodels 庫提供了一種執行 Brown-Forsythe 檢驗的方法。

需要注意的是,Brown-Forsythe 檢驗對異常值敏感,但比 Levene 檢驗對非正態性更穩健。如果資料非正態,通常建議使用 Brown-Forsythe 檢驗。

Python 中的 Brown-Forsythe 檢驗

語法

levene(sample1, sample2, …sampleN, center=’median’, proportiontocut=0.05)

引數

  • sample1, sample2, …sampleN − 樣本資料,可能具有不同的長度。樣本必須是一維的才能被接受。

  • Center − 要用於檢驗的資料函式。“Median”(中值)為預設值。

  • Proportiontocut − 當 center 為“trimmed”(截尾)時,表示要從每端移除的資料點數。

解釋

levene() 函式中,使用者必須傳遞不同長度的一維樣本資料以及引數 center 為“Median”(中值)。然後,此函式返回提供的樣本的統計量和 p 值。

演算法

  • 從 scipy 中匯入 levene 函式。

  • 建立要對其執行 Brown-Forsythe 檢驗的資料樣本。

  • 將樣本資料傳遞給 levene 函式以執行檢驗。

  • 從函式中獲取返回的統計量和 p 值。

您可以使用 scipy 庫中的 stats.Levene 方法來執行 Brown-Forsythe 檢驗。

from scipy.stats import levene

group1 = [1, 2, 3, 4, 5]
group2 = [2, 3, 4, 5, 6]
group3 = [3, 4, 5, 6, 7]

statistic, pvalue = levene(group1, group2, group3)
print("statistic: ", statistic)
print("p-value: ", pvalue)

輸出

statistic:  0.0
p-value:  1.0

在這裡,您可以看到 p 值為 1,大於 0.05。這意味著我們可以接受原假設。因此,兩組的方差相同。因此,備擇假設被拒絕。

除了實現 Brown-Forsythe 檢驗外,我們還想澄清機器學習工程師通常存在的一個困惑。那就是 Brown-Forsythe 檢驗和 ANOVA 檢驗之間是如何相關的。

Brown-Forsythe 檢驗和 ANOVA 檢驗之間有什麼關係?

Brown-Forsythe 檢驗和 ANOVA(方差分析)檢驗之間存在關聯,因為它們都檢驗組均值之間的差異。但是,它們檢驗不同的假設並具有不同的應用。

ANOVA 是一種統計方法,用於檢驗兩個或多個組的均值之間是否存在顯著差異。它假設各組的方差相等,並且資料呈正態分佈。ANOVA 用於確定兩個或多個組的均值是否相等,並比較各組的方差。

Brown-Forsythe 檢驗是 Levene 檢驗的一種變體,Levene 檢驗使用與均值的絕對偏差,而 Brown-Forsythe 檢驗使用與中值的偏差。另一方面,Brown-Forsythe 檢驗是用於檢驗方差齊性的一種檢驗,這是 ANOVA 的一個必要假設。它用於確定兩個或多個組的方差是否相等。

在實踐中,通常在執行 ANOVA 之前執行 Brown-Forsythe 檢驗以檢查是否滿足方差相等的假設。如果方差不相等,則可能適合使用非引數檢驗(如 Kruskal-Wallis 檢驗或 Welch 的 ANOVA 檢驗)而不是常規檢驗。

Brown-Forsythe 檢驗的用例

Brown-Forsythe 檢驗被用於各個領域,例如生物學、醫學、心理學、社會科學和工程學,以檢驗不同組的方差是否相等。一些常見的用例包括:

  • 比較兩個或多個樣本的方差 − Brown-Forsythe 檢驗可以確定兩個或多個樣本的方差是否相等。例如,在醫學研究中,該檢驗可用於比較不同患者組的血壓測量值的方差。

  • 在執行 ANOVA 之前檢驗方差齊性 − 由於 Brown-Forsythe 檢驗是用於檢驗方差齊性的一種檢驗,因此它可以用來檢查在執行 ANOVA 之前是否滿足方差相等的假設。這可以確保 ANOVA 的結果有效。

  • 檢驗非正態分佈資料的方差是否相等 − Brown-Forsythe 檢驗比 Levene 檢驗對非正態性更穩健。它可以用於檢驗非正態分佈資料的方差是否相等。

  • 比較重複測量設計中的方差 − 在進行重複測量設計實驗時,使用 Brown-Forsythe 檢驗來檢查各組之間方差的齊性可能很有用。

  • 製造業中的質量控制 − Brown-Forsythe 檢驗可以用於檢查不同生產批次的方差是否相等,以確保產品的質量一致。

結論

總之,Brown-Forsythe 檢驗是一種用於檢測資料集中是否存在異方差的有用統計方法。可以使用 scipy 庫在 Python 中輕鬆實現它。檢驗結果可以為有關對資料執行適當統計分析的決策提供依據。通過了解檢驗的假設並解釋結果,研究人員可以更好地理解其資料的分佈並對其分析做出明智的決策。

更新於: 2023年4月28日

298 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告