Python中的Welch's T檢驗
Python 是一種功能強大的語言,可用於執行各種統計檢驗。其中一項統計檢驗就是 Welch's T 檢驗。
當有兩個方差相等的資料集,並且需要找出它們的均值是否相同,那麼使用雙樣本 t 檢驗就足夠明智。但是,如果兩個資料集的方差不同,則應使用 Welch's T 檢驗來比較均值。
語法
stats.ttest_ind(dataset_one, dataset_two, equal_var = False/True)
這裡,ttest_ind 是執行 Welch's T 檢驗的函式。它接受三個引數:
第一個資料集作為陣列或列表
第二個資料集作為陣列或列表
一個布林變數,指示方差是否相等
此外,該函式在輸出中返回兩個值,即檢驗統計量值和 p 值。
演算法
步驟 1 - 匯入 Python 的 numpy 和 scipy 庫。
步驟 2 - 使用 array() 方法形成兩個資料集。
步驟 3 - 使用 var() 方法檢查兩個資料集的方差是否相同。如果方差比大於 4:1,則不能假設方差相等,並且可以轉到下一步執行 Welch's T 檢驗。
步驟 4 - 使用 stats.ttest_ind() 方法找出 p 值。如果 p 值小於 0.05,則假設均值差異顯著。
示例 1
在本例中,我們將採用兩個包含兩種不同物種的 10 株植物葉片數量的陣列,並對其進行 Welch's T 檢驗。這是使用 stats.ttest_ind() 函式完成的,但首先,我們檢查兩個陣列的方差是否相同。
這是要檢驗的假設 -
零假設 (ho) - u1 = u2,即這兩個資料集的均值大致相等。
備擇假設 (h1) - u1≠ u2,即這兩個資料集的均值存在顯著差異。
#import the numpy and scipy libraries import numpy as np import scipy.stats as stats #form two datasets as array_one and array_two array_one = np.array([25, 55, 59, 24, 21, 54, 32, 43, 54, 65]) array_two = np.array([23, 12, 24, 10, 18, 17, 22, 15, 16, 25]) #find out the ratio of variances of the two datasets val = (np.var(array_one)/ np.var(array_two)) #if the ratio is greater than 4, perform the Welch's test if(val>4): print(stats.ttest_ind(array_one, array_two, equal_var = False))
輸出
Ttest_indResult(statistic=4.602699733067644, pvalue=0.0008049287678035495)
由於 p 值小於 0.05,因此我們可以得出結論,這兩個資料集之間的均值差異相當大。
示例 2
在本例中,我們將採用兩個包含兩位擊球手在 10 場比賽中得分值的陣列,並對其進行 Welch's T 檢驗。
#import the numpy and scipy libraries import numpy as np import scipy.stats as stats #form two datasets as batsman_one and batsman_two batsman_one = [30, 91, 0, 64, 42, 80, 30, 5, 117, 71] batsman_two = [53, 46, 48, 50, 53, 53, 58, 60, 57, 52] #find out the ratio of variances of the two datasets val = (np.var(batsman_one)/np.var(batsman_two)) #if the ratio is greater than 4, perform the Welch's test if(val>4): print(stats.ttest_ind(batsman_one, batsman_two, equal_var = False))
輸出
Ttest_indResult(statistic=0.0, pvalue=1.0)
由於返回的 p 值不僅大於 0.5,而且等於 1.0,因此我們可以得出結論,這兩個資料集的均值相同。
結論
即使方差相等,Welch's T 檢驗也比雙樣本 t 檢驗提供更好的結果,並且錯誤率更低。因此,無論方差值如何,都可以直接使用 Welch's T 檢驗。但是,建議將其用於具有偏態分佈的大型資料集。此外,它不僅限於 Python,R 和 Julia 等語言也支援 Welch's T 檢驗。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP