首頁  >  文章  >  後端開發  >  如何在Python中執行F檢驗

如何在Python中執行F檢驗

WBOY
WBOY轉載
2023-09-09 20:45:021072瀏覽

統計學家使用 F 檢定來檢查兩個資料集是否具有相同的變異數。 F 檢驗以羅納德費雪爵士的名字命名。為了使用 F 檢驗,我們做兩個假設,一個原假設和一個備擇假設。然後我們選擇 F 檢定認可的這兩個假設中的任何一個。

變異數是一種資料分佈量測,用來說明資料與平均值的偏差。較高的值比較較小的值顯示出更大的離散度。

在本文中,您將學習如何在Python程式語言中執行F-Test以及其使用案例。

F-測試過程

執行F-檢定的過程如下:

  • 首先,定義原假設和備擇假設。

    • 零假設或H0:σ12 = σ22(總體變異數相等)

    • 替代假設或 H1:σ12 ≠ σ22(總體變異數不相等)

  • #選擇用於測試的統計資料。

  • 計算總體的自由度。例如,如果 m 和 n 是總體形狀,則自由度分別表示為 (df1) = m–1 和 (df2) = n – 1

  • 現在從 F 表中尋找 F 值。

  • 最後,將雙尾檢定的 alpha 值除以 2,計算出臨界值。

因此,我們使用總體的自由度定義 F 值。我們讀取第一行中的 df1,而第一列中的 df2。

有各種用於獨特自由度的 F 表。我們將步驟 2 中的 F 統計量與步驟 4 中計算的臨界值進行比較。如果臨界值小於 F 統計量,我們可以拒絕原假設。相反,當臨界值在某個顯著水準上大於F統計量時,我們可以接受原假設。

如何在Python中執行F檢驗

假設

在進行基於資料集的F-檢定之前,我們做了一些假設。

  • 資料整體服從常態分佈,即符合鐘形曲線。

  • 樣本之間不相關,即人群中不存在多重共線性。

除了這些假設之外,在進行F檢定時,我們還應考慮以下關鍵要點:

  • 最大變異值應該在分子中以執行右尾檢定。

  • 在雙尾檢定中,將alpha除以2後確定臨界值。

  • 檢查是否有變異數或標準差。

  • 如果 F 表中沒有自由度,則以最大值作為臨界值。

F-Test在Python中的應用

文法

scipy stats.f()

參數

x :  quantiles
q :  lower or upper tail probability
dfn, dfd shape parameters
loc :location parameter
scale :  scale parameter (default=1)
size :  random variate shape
moments : [‘mvsk’] letters, specifying which moments to compute

Explanation

的中文翻譯為:

解釋

在這個方法中,使用者必須將f_value和每個陣列的可迭代長度傳遞給scipy.stats.f.cdf(),並將其減去1以執行F檢定。

演算法

  • 首先,導入NumPy和Scipy.stats函式庫進行操作。

  • 然後建立兩個具有兩個不同變數名稱的隨機選擇值列表,並將它們轉換為 NumPy 數組,並使用 Numpy 計算每個數組的變異數。

  • 定義一個函數來計算F分數,其中首先我們將數組的變異數除以自由度為1。

  • 然後計算每個數組的可迭代長度,並將 f 值(方差比率)和長度傳遞到 CDF 函數中,並從 1 中減去該長度以計算 p 值。

  • 最後,函數傳回 p_value 和 f_value。

範例

import numpy as np
import scipy.stats

# Create data
group1 = [0.28, 0.2, 0.26, 0.28, 0.5]
group2 = [0.2, 0.23, 0.26, 0.21, 0.23]

# Converting the list to an array
x = np.array(group1)
y = np.array(group2)

# Calculate the variance of each group
print(np.var(group1), np.var(group2))

def f_test(group1, group2):
   f = np.var(group1, ddof=1)/np.var(group2, ddof=1)
   nun = x.size-1
   dun = y.size-1
   p_value = 1-scipy.stats.f.cdf(f, nun, dun)
   return f, p_value

# perform F-test
f_test(x, y)

輸出

Variances: 0.010464 0.00042400000000000017

您可以觀察到 F 檢定值為 4.38712, 對應的 p 值為 0.019127

由於p值小於0.05,我們將放棄虛無假設。因此,我們可以說這兩個總體的變異數不相等。

結論

讀完本文後,您現在知道如何使用 F 檢定來檢查兩個樣本是否屬於具有相同變異數的總體。您已經了解了 F 測試過程、假設和 Python 實作。讓我們用一些要點來總結這篇文章 -

  • F檢定告訴你兩個總體是否有相等的變異數。

  • 計算自由度並計算臨界值。

  • 從F-表中找到F統計量,並將其與在前一步計算的關鍵值進行比較。

  • 根據臨界值和 F 統計量比較接受或拒絕原假設。

以上是如何在Python中執行F檢驗的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除