使用雙樣本 t 檢定對兩組平均值進行統計比較,看看它們之間是否有顯著差異。此檢定經常用於科學研究,以確定兩組在連續變數的基礎上是否存在顯著差異。在本文中,我們將了解如何使用 Python 的 scipy.stats 模組執行兩個樣本 t 檢定。
在繼續實現之前,讓我們先了解雙樣本 t 檢定的理論基礎。此檢定假設兩個樣本總體呈常態分佈且變異數相似。兩組平均值相等是原假設,而兩組平均值不相等是備擇假設。檢定統計量是透過將兩組之間的平均值差異除以標準誤差差異得出的。我們拒絕原假設,並得出結論:如果估計的 t 值高於臨界值,則兩組的平均值顯著不同。
我們來看看Python中進行雙樣本t檢定的方法。我們將需要 scipy.stats 模組,它有助於提供一個名為 ttest_ind 的函數。它採用兩個數組作為代表兩個樣本的輸入,並傳回 t 和 p 值。
導入必要的庫將是第一步。要在 Python 中執行兩個樣本 T 檢驗,我們需要匯入 NumPy 和 SciPy 函式庫。統計運算是使用 SciPy 函式庫進行的,而數學運算是使用 NumPy 函式庫進行的。
import NumPy as np from scipy.stats import ttest_ind
接下來讓我們建立兩個具有相同平均值和標準差的隨機樣本 -
np.random.seed(42) sample1 = np.random.normal(loc=10, scale=2, size=100) sample2 = np.random.normal(loc=10, scale=2, size=100)
在這裡,我們使用 np.random.normal 函數產生兩個大小各為 100 的樣本,平均值為 10,標準差為 2。我們將隨機種子設定為 42,以確保結果可重現。
現在,讓我們來進行 t 檢定 -
t_stat, p_value = ttest_ind(sample1, sample2)
ttest_ind 函數傳回兩個帶有程式碼的值:t 值和 p 值。 t 值衡量兩個樣本平均值之間的差異,而 p 值衡量差異的統計顯著性。
最後,讓我們列印結果 -
print("t-value: ", t_stat) print("p-value: ", p_value)
這將輸出 t 值和 p 值 -
t-value: 0.086 p-value: 0.931
由於此程式碼中的 t 值很小,因此可以得出結論,兩個樣本的平均值具有相當的可比性。由於 p 值太大,兩個值之間的差異並不同樣顯著。
請記住,t 檢定假設兩組的變異數相等。如果該假設被打破,則可以使用韋爾奇 t 檢驗,它是 t 檢定的一種變體,不假設變異數相等。 Welch t 檢定的 ttest_ind_from_stats 方法也可在 scipy.stats 模組中使用。兩組的平均值、標準差和樣本量是該函數的輸入。
mean1, std1, size1 = 10, 2, 100 mean2, std2, size2 = 10, 3, 100 t_stat, p_value = ttest_ind_from_stats(mean1, std1, size1, mean2, std2, size2, equal_var=False) print("t-value: ", t_stat) print("p-value: ", p_value)
這將輸出 t 值和 p 值 -
t-value: -0.267 p-value: 0.790
根據數據,本例中的 t 值為負,表示樣本 1 的平均值略低於樣本 2 的平均值。然而,非常高的 p 值表示平均值差異在統計上並不顯著。
總之,雙樣本 t 檢定是一種有效的統計工具,使我們能夠比較兩組的平均值並確定它們是否存在顯著差異。 Python 有許多用於執行 t 檢定的函式庫和函數,包括我們在本文中使用的 scipy.stats 模組。 t 檢定做出各種假設,包括常態性和等方差,應在測試運行之前進行驗證。此外,在解釋結果時,應始終考慮正在考慮的具體研究問題以及研究的限制。
以上是如何在Python中進行雙樣本T檢定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!