如何在Python中進行雙樣本t檢驗?


介紹

雙樣本t檢驗用於比較兩個組的均值,以檢視它們之間是否存在顯著差異。該檢驗常用於科學研究中,以確定兩個組在連續變數上的差異是否具有統計學意義。在本文中,我們將學習如何使用Python的scipy.stats模組進行雙樣本t檢驗。

進行雙樣本t檢驗

在進入實現之前,讓我們首先了解雙樣本t檢驗背後的理論。該檢驗假設兩個樣本總體服從正態分佈,且方差相似。零假設是兩組的均值相等,備擇假設是它們不相等。檢驗統計量是透過將兩組均值之差除以標準誤差之差來計算的。如果估計的t值大於臨界值,我們拒絕零假設,並得出結論認為兩組的均值存在顯著差異。

讓我們看看如何在Python中進行雙樣本t檢驗的方法。我們將需要scipy.stats模組,它提供了一個名為ttest_ind的函式。它接受表示兩個樣本的兩個陣列作為輸入,並返回t值和p值。

步驟1:匯入所需的庫

第一步是匯入必要的庫。要在Python中執行雙樣本t檢驗,我們需要匯入NumPy和SciPy庫。SciPy庫用於執行統計運算,而NumPy庫用於執行數學運算。

import NumPy as np
from scipy.stats import ttest_ind

步驟2:生成變數

接下來,讓我們建立兩個具有相同均值和標準差的隨機樣本:

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)

步驟3:解釋結果

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檢驗的一個變體——Welch's t檢驗,它不假設方差相等。scipy.stats模組中也提供了Welch's t檢驗的函式ttest_ind_from_stats。此函式的輸入是兩組的均值、標準差和樣本大小。

讓我們看看如何在Python中進行Welch's t檢驗

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檢驗做出了幾個假設,包括正態性和方差相等,在進行檢驗之前應該驗證這些假設。此外,在解釋結果時,應始終考慮具體的科學問題以及研究的侷限性。

更新於:2023年7月13日

1K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告