使用 R 的 t.test
函數進行單一樣本、獨立雙樣本與成對樣本的 t 檢定,檢驗母體平均數是否相同。
在各種研究上我們時常需要比較兩組資料是否具有顯著差異,而最常用來判斷母體平均數是否存在差異的統計方法就是 t 檢定。
t 檢定可分為單一樣本 t 檢定、獨立雙樣本 t 檢定、成對雙樣本 t 檢定三大類,以下是它們的使用時機,以及實際的範例。
單一樣本 t 檢定
假設我們有一組來自於常態分佈的樣本,想要檢驗它的母體平均值是否跟指定的值有差異,就可以使用單一樣本 t 檢定。
舉例來說,如果我們從一個班級中隨機抽樣調查 10 位學生的身高,想看看這一班學生的平均身高是否與全校平均身高(172)有差異,就可以使用單一樣本 t 檢定,首先輸入抽樣取得的身高資料以及全校平均身高:
# 抽樣學生的身高 x <- c(173, 168, 185, 176, 181, 168, 159, 159, 171, 165) # 全校平均身高 avg <- 172
由於 t 檢定的前提是資料必須是常態分佈的,所以要先使用 Shapiro-Wilk 檢定,檢查一下常態性假設是否成立:
# 常態性檢定 shapiro.test(x)
Shapiro-Wilk normality test data: x W = 0.95916, p-value = 0.7762
p-value 為 0.7762
,所以不拒絕虛無假設,表示常態性的假設是合理的,這樣就可以放心使用 t 檢定了。
常態性檢定的方法有非常多種,更詳細的教學請參考 R 常態性檢定教學與範例。
呼叫 t.test
進行單一樣本 t 檢定:
# 單一樣本 t 檢定 t.test(x, mu = avg)
One Sample t-test data: x t = -0.55203, df = 9, p-value = 0.5944 alternative hypothesis: true mean is not equal to 172 95 percent confidence interval: 164.3532 176.6468 sample estimates: mean of x 170.5
檢定所得到的 p-value 為 0.5944
,所以沒有顯著證據顯示這一班的平均身高跟全校的平均身高有差異。
獨立雙樣本 t 檢定
假設我們有兩組來自於兩個常態分佈的獨立樣本,想要檢驗兩邊的母體平均值是否有差異,就可以使用獨立雙樣本 t 檢定。
例如我們從兩個班級中各隨機抽樣調查 10 位學生的身高,想看看兩班的平均身高是否有差異,就可以使用獨立雙樣本 t 檢定。
這部分的 t 檢定分為兩種,一種是兩邊的母體變異數相同的狀況,另一種是母體變異數不同的狀況,要看資料的狀況來選擇使用哪一種。
變異數相同
首先輸入兩班抽樣學生的身高:
# 抽樣學生的身高 x <- c(173, 168, 185, 176, 181, 168, 159, 159, 171, 165) y <- c(150, 189, 194, 171, 173, 188, 162, 180, 166, 170)
首先進行常態性檢定:
# 常態性檢定 shapiro.test(x)
Shapiro-Wilk normality test data: x W = 0.95916, p-value = 0.7762
# 常態性檢定 shapiro.test(y)
Shapiro-Wilk normality test data: y W = 0.96751, p-value = 0.8669
兩個 p-value 都大於 0.05
,所以常態性假設沒有問題。
通過常態性檢定之後,使用 F 檢定來看看兩邊的母體變異數是否有差異:
# F 檢定 var.test(x, y)
F test to compare two variances data: x and y F = 0.39884, num df = 9, denom df = 9, p-value = 0.1871 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.09906512 1.60570981 sample estimates: ratio of variances 0.3988356
F 檢定的 p-value 是 0.1871
,所以說母體變異數相同的假設成立,可以繼續使用變異數相同的獨立雙樣本 t 檢定:
# 獨立雙樣本 t 檢定(變異數相同) t.test(x, y, var.equal = TRUE)
Two Sample t-test data: x and y t = -0.74674, df = 18, p-value = 0.4649 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -14.491104 6.891104 sample estimates: mean of x mean of y 170.5 174.3
t 檢定的 p-value 為 0.4649
代表沒有顯著證據顯示兩班的學生平均身高有差異。
變異數不同
如果在進行 F 檢定時,發現兩邊的母體變異數是不同的,就要改用變異數不同的獨立雙樣本 t 檢定,以下是一個範例:
# 抽樣學生的身高 x <- c(173, 168, 185, 176, 181, 168, 159, 159, 171, 165) y <- c(174, 178, 175, 174, 170, 178, 175, 173, 175, 173)
進行常態性檢定:
# 常態性檢定 shapiro.test(x)
Shapiro-Wilk normality test data: x W = 0.95916, p-value = 0.7762
# 常態性檢定 shapiro.test(y)
Shapiro-Wilk normality test data: y W = 0.9227, p-value = 0.38
進行 F 檢定:
# F 檢定 var.test(x, y)
F test to compare two variances data: x and y F = 13.158, num df = 9, denom df = 9, p-value = 0.0007116 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 3.268364 52.975705 sample estimates: ratio of variances 13.15842
經過 F 檢定之後,發現兩邊的母體變異數不相同,所以使用變異數不同的獨立雙樣本 t 檢定,也就是將 t.test
函數的 var.equal
參數設定為 FALSE
:
# 獨立雙樣本 t 檢定(變異數不同) t.test(x, y, var.equal = FALSE)
Welch Two Sample t-test data: x and y t = -1.4191, df = 10.36, p-value = 0.1852 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -10.250745 2.250745 sample estimates: mean of x mean of y 170.5 174.5
最後得到的 p-value 為 0.1852
,代表沒有顯著證據顯示兩班的學生平均身高有差異。
成對雙樣本 t 檢定
假設我們有兩組來自於兩個常態分佈的樣本,而兩組樣本之間是有關聯性的,這種狀況下若想要檢驗兩邊的母體平均值是否有差異,就可以使用成對雙樣本 t 檢定。
假設我們想要知道運動是否對於體重有影響,我們在實驗之前,測量一群人的原本體重,然後讓這群人經過長期的運動之後,再測量一次,也就是說我們拿到的資料是有配對關係的(同一人長期運動前後的體重),這樣種況即可使用成對雙樣本 t 檢定。
# 長期運動前後的體重 x <- c(70, 87, 84, 76, 67, 66, 83, 46, 71, 88) y <- c(72, 91, 84, 79, 69, 69, 84, 48, 71, 90)
進行常態性檢定:
# 常態性檢定 shapiro.test(x)
Shapiro-Wilk normality test data: x W = 0.90258, p-value = 0.2338
# 常態性檢定 shapiro.test(y)
Shapiro-Wilk normality test data: y W = 0.90852, p-value = 0.271
常態性假設沒問題,接著進行成對雙樣本 t 檢定:
# 成對雙樣本 t 檢定 t.test(x, y, paired = TRUE)
Paired t-test data: x and y t = -4.6696, df = 9, p-value = 0.001169 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.8204382 -0.9795618 sample estimates: mean of the differences -1.9
經過成對雙樣本 t 檢定之後,得到的 p-value 為 0.001169
,代表長期的運動對於體重有顯著的影響。