# 貳、數據檢定之t檢定(以excel、Google sheet和R語言示範)(高中向) 作者:shi wood yán([關於作者](https://hackmd.io/@shiwoodyan/ByOX40lHA/edit))(部分內容由AI輔助) ---- ## 前言 本篇介紹了三種方式(Excel、Google sheet、R)做t檢定,可以根據自身條件選擇,但其實Excel、Google sheet,算出來的結果其實都有些微的錯誤,兩者錯誤好像都是因為自由度的計算錯誤,而學界上,基本還是以spss與r語言為主,但我認為以高中生來講,Excel與Google sheet也夠了。 ## 一、t檢定(t-test)簡介 1. 使用情況 **比較兩組數據的平均數,是否有明顯差異**,以我所做的實驗舉例,校定必修-生物實驗的生活中的留言終結者—學校飲水機的水比馬桶水還髒,我們分別記錄了五組廁所之菌落數與五組飲水機之菌落數(下圖),在這種情況下就適合用t檢定。 ![Untitled](https://hackmd.io/_uploads/Bku08VKrA.jpg) 2. Independent vs Paired vs One Sample 另外,t-檢定也分為三種,獨立樣本t檢定(Independent sample t-test)、成對樣本t檢定(Paired Sample t-test)與單樣本 t 檢定(One Sample t-test)。 * 獨立樣本t檢定: 當二樣本組,不互相干涉,則用於獨立樣本t檢定,如:我舉例的實驗數據。 * 成對樣本t檢定: 若當二樣本組,互相干涉,像是樣本的前後對照,就要用到成對樣本t檢定,如:同一組病人治療前後身體數據(像是血液的白血球濃度)的差異。 * 單樣本 t 檢定: 使用單樣本 t 檢定的時機,通常都會有個目標值(如:理論值),用一個樣本組做鑑定,看是否有符合目標值。 本次以獨立樣本t檢定作為主要示範對象。 ## 二、執行t檢定簡介 ![image](https://hackmd.io/_uploads/r1UWUFEHC.png) 上圖為執行t檢定的參考步驟圖,在執行t檢定之前,通常會進行變異數同質性檢測來確保兩組數據的變異數是否相等,因為變異數是否相等將會決定t檢定的計算公式 1. 同質性檢測: 在執行t檢定前,要先檢定兩組數據的變異數是否相同,這裡的意思不是直接算出變異數比較。而是透過F檢定或Levene檢定算出F值與$p_f$值(這裡的p值為變異數同質性檢測結果的p值,為防止與t檢定的p值搞混,故以$p_f$表示),並判斷變異數是否相等。 2. t檢定之變異數是否相等: 根據Levene檢定/F檢定的結果,可以選擇合適的t檢定方法,並算出單尾與雙尾的p值 * $p_f$值 > 0.05:變異數相等 * $p_f$值 < 0.05:變異數不相等 3. 選擇單尾與雙尾數值: 根據實驗假設選擇紀錄單尾與雙尾的p值。 ## 三、實際執行t檢定-以excel示範 ### 事前設定-開啟資料分析 [在 Excel 中載入分析工具箱](https://support.microsoft.com/zh-tw/office/%E5%9C%A8-excel-%E4%B8%AD%E8%BC%89%E5%85%A5%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E7%AE%B1-6a63e598-cd6d-42e3-9317-6b40ba1a66b4) 完成上述設定,會在資料當中出現資料分析選項。 ![未命名-1](https://hackmd.io/_uploads/Sy3gF5VBC.png) ### 例子:比較兩種不同培養基(A和B)對細菌生長的影響。 (以下非實際實驗,僅作為例子示範) ![image](https://hackmd.io/_uploads/B1F_W5EBA.png) #### 假設與顯著性水平(𝛼): 雙尾檢定 $H_0$:培養基A和B對細菌生長的影響相同(即平均CFU/mL相等) $H_1$:培養基A和B對細菌生長的影響不同(即平均CFU/mL不相等) 𝛼=0.05 ### STEP1:同質性檢測 我們點選資料分析,它會跳出以下畫面。 ![image](https://hackmd.io/_uploads/HkRst5NrC.png) 選擇F檢定 ![未命名-1](https://hackmd.io/_uploads/B1IlejOrA.png) 接者會跳出設定頁面,設定範圍完後,按確定。 ![image](https://hackmd.io/_uploads/Hkg739EHA.png) 接者便會輸出結果,得到p約為0.11(順帶一題,F值為兩變數的變異數之比值) ![未命名-1](https://hackmd.io/_uploads/SJg66qNH0.png) 藉由上述操作我們知道p值大於0.05,結果為「變異數相等」 ### STEP2:做t檢定 我們再次點選資料分析,根據前一步驟選擇t檢定的類型,由於我們的結果為「變異數相等」,故選「t 檢定:兩個母體平均數差的檢定,假設變異數相等」,若及上一步結果為「變異數不相等」,則選擇「t 檢定:兩個母體平均數差的檢定,假設變異數不相等」 ![未命名-2](https://hackmd.io/_uploads/Bkq4mjuS0.png) 一樣設定好範圍 ![image](https://hackmd.io/_uploads/BJx8Ms4BA.png) 輸出結果,得知雙尾p值為2.19206E-06 ![image](https://hackmd.io/_uploads/HkzzHi4r0.png) ### STRP3:分析結果 根據STEP2的結果,p值為2.19206E-06,也就是約為0.000002192($2.19206157945777×10^ {-6}\approx 0.00000219$)小於𝛼值0.05,我們有理由懷疑拒絕虛無假設,並拒絕虛無假設,在統計學上,培養基A和B對細菌生長具有顯著差異。 ## 四、實際執行t檢定-以Google sheet示範 ### 事前設定-下載外掛程式XLMiner Analysis ToolPak 選擇擴充功能→外掛程式→取得外掛程式,接者就會跳出Google Workspace Marketplace 視窗。 ![未命名-1](https://hackmd.io/_uploads/S1PcqlLB0.png) 搜尋XLMiner Analysis ToolPak,並下載之。 ![未命名-1](https://hackmd.io/_uploads/HJ-qAl8r0.png) 接著變會看在擴充功能看到它出現,選擇並按下start,就會跳出分析界面。 ![image](https://hackmd.io/_uploads/B1ZxJWLr0.png) 分析界面 ![upload_94cbdc9efb0be5e3ff1cd736b347c8d4](https://hackmd.io/_uploads/SkDueZLrC.png) ### 例子:比較兩種不同培養基(A和B)對細菌生長的影響。 (以下非實際實驗,僅作為例子示範) ![image](https://hackmd.io/_uploads/B1F_W5EBA.png) #### 假設與顯著性水平(𝛼): 雙尾檢定 $H_0$:培養基A和B對細菌生長的影響相同(即平均CFU/mL相等) $H_1$:培養基A和B對細菌生長的影響不同(即平均CFU/mL不相等) 𝛼=0.05 ### STEP1:同質性檢測 我們點選「F-Test Two-Sample for Variances」,並設定好範圍,按ok輸出。 ![image](https://hackmd.io/_uploads/SyKQeWUBR.png) 結果為下圖,p值約為0.137,大於0.05,結果為「變異數相等」。(對,與excel不太一樣,兩者在自由度的計算都有點錯誤) ![image](https://hackmd.io/_uploads/S1jkZb8S0.png) ### STEP2:做t檢定 我們再點選「t-Test: Two-Sample Assuming Equal Variances」,設定好範圍,Hypothesized Mean Difference則設置「0」就好,按ok輸出。 ![image](https://hackmd.io/_uploads/SyaM7bIBA.png) 結果為下圖, one-tail是單尾的意思,two-tail就是雙尾,根據實驗假設,我們看雙尾的p值約為0.000002192。 ![image](https://hackmd.io/_uploads/rJdBm-UH0.png) ### STRP3:分析結果 根據STEP2的結果,p值約為0.000002192,小於𝛼值0.05,我們有理由懷疑拒絕虛無假設,並拒絕虛無假設,也就是說,在統計學上,培養基A和B對細菌生長具有顯著差異。 ## 五、實際執行t檢定-以R語言示範 ### 事前設定-下載R語言 本篇適合了解基本R語言操作的人,想了解的,網路上相關文章很多,而且也很詳細。 在用R做t檢定前,電腦要先安裝R語言(幹話),這網路上有需多資源,查"下載R語言"就很多了,推薦的編輯器有RGui或RStudio,Visual Studio Code應該也可以,但要設定一下。 本篇以RGui示範 ### 例子:比較兩種不同培養基(A和B)對細菌生長的影響。 (以下非實際實驗,僅作為例子示範) ![image](https://hackmd.io/_uploads/B1F_W5EBA.png) #### 假設與顯著性水平(𝛼): 雙尾檢定 $H_0$:培養基A和B對細菌生長的影響相同(即平均CFU/mL相等) $H_1$:培養基A和B對細菌生長的影響不同(即平均CFU/mL不相等) 𝛼=0.05 ### STEP1:同質性檢測 在執行Levene檢定前,R語言要下載套件,並將資料輸入成向量格式,並創建一個資料框以符合作Levene檢定的格式。實際程式碼如下: ```R= # 安裝car包(如果尚未安裝) install.packages("car") # 加載car包 library(car) # 數據輸入 CFU_A <- c(150, 160, 145, 155, 165, 150, 158, 162, 148, 152) CFU_B <- c(140, 135, 138, 142, 130, 145, 133, 137, 139, 136) # 創建一個數據框 data <- data.frame( CFU = c(CFU_A, CFU_B), Group = factor(rep(c("A", "B"), each = 10)) ) #檢視數據框 data # 進行Levene檢定 leveneTest(CFU ~ Group, data = data) ``` 執行結果: ![image](https://hackmd.io/_uploads/SyfYENvSA.png) ```R= Levene's Test for Homogeneity of Variance (center = median) Df F value Pr(>F) group 1 2.764 0.1137 18 ``` p值約為0.1137,大於0.05,結果為「變異數相等」 ### STEP2:做t檢定 根據STEP1的結果,我們要做t檢定-假設變異數相等,故程式碼為```var.equal=TRUE```,若變異數不相等,則打```var.equal=FALSE```,實際如下: ```R= # 數據輸入(如果上一步有保留,就不用再執行一次) CFU_A <- c(150, 160, 145, 155, 165, 150, 158, 162, 148, 152) CFU_B <- c(140, 135, 138, 142, 130, 145, 133, 137, 139, 136) # 創建一個數據框(如果上一步有保留,就不用再執行一次) data <- data.frame( CFU = c(CFU_A, CFU_B), Group = factor(rep(c("A", "B"), each = 10)) ) t.test(data$CFU ~ data$Group, var.equal=TRUE) ``` 執行結果: ![image](https://hackmd.io/_uploads/rkbdGSDrA.png) ```R= Two Sample t-test data: data$CFU by data$Group t = 6.8213, df = 18, p-value = 2.192e-06 alternative hypothesis: true difference in means between group A and group B is not equal to 0 95 percent confidence interval: 11.76406 22.23594 sample estimates: mean in group A mean in group B 154.5 137.5 ``` ### STEP3:分析結果 根據STEP2的結果,p值為2.192e-06,也就是約為0.000002192($2.192×10^ {-6}\approx 0.00000219$)小於𝛼值0.05,我們有理由懷疑拒絕虛無假設,並拒絕虛無假設,在統計學上,培養基A和B對細菌生長具有顯著差異。 > ### 相關筆記 > * 筆記-自學統計: [壹、檢定數據的方法](https://hackmd.io/@shiwoodyan/ryYzsTlrA) [貳、數據檢定之t檢定(以excel、Google sheet和R語言示範)](https://hackmd.io/@shiwoodyan/BJZ1bgYXC)