1 Packages and dataset

本段程式碼載入後續資料讀取與描述統計所需要的 R 套件。接著,使用 read_spss() 函數讀取 PISA 2022 的 SPSS 格式資料檔,並將資料儲存為 PISA.dat。

library(haven)   # 讀取 SPSS(.sav)格式資料
library(psych)   # 提供 describe() 描述統計函數

# 讀取 PISA 2022 臺灣資料,儲存為 PISA.dat
PISA.dat <- read_spss("PISA_tawian2022_trimmed_lab.sav")

2 Research hypotheses

本次分析要檢驗臺灣學生的數學成績(PV1MATH)是否與 PISA 全球參與國家學生的數學平均 440 分有顯著差異。由於題目只問「是否有差異」,沒有指定方向,因此採用雙尾檢定,顯著水準 \(\alpha = .05\)。

3 Descriptive statistics for PV1MATH

本節先計算 PV1MATH 的描述統計,作為後續 t 檢定的基礎。

3.1 Summary with “describe” function in “psych” package

本段程式碼使用 psych 套件中的 describe() 函數,計算 PV1MATH 的描述統計量,包括有效樣本數、平均數、標準差、中位數、最小值、最大值、偏態與峰度等資訊。

describe(PISA.dat$PV1MATH)   # PV1MATH 的描述統計
##    vars    n   mean     sd median trimmed   mad    min    max  range skew
## X1    1 5599 537.82 109.73 541.62  539.17 117.1 219.06 917.38 698.32 -0.1
##    kurtosis   se
## X1    -0.43 1.47

3.2 Mean, standard deviation and sample size

本段程式碼分別計算 PV1MATH 的平均數、標準差與有效樣本數,並儲存為 MP、MP_SD 與 n,供下一節計算 t 值使用。na.rm = TRUE 表示計算時排除缺失值,sum(!is.na()) 則計算非缺失值的個數。

MP    <- mean(PISA.dat$PV1MATH, na.rm = TRUE)   # 平均數 M
MP_SD <- sd(PISA.dat$PV1MATH, na.rm = TRUE)     # 標準差 SD
n     <- sum(!is.na(PISA.dat$PV1MATH))          # 有效樣本數 n(排除缺失值)

MP
## [1] 537.822
MP_SD
## [1] 109.7305
n
## [1] 5599

4 One-sample t-test

本節依照單一樣本 t 檢定的公式,手動計算 t 值與 p 值,再以 R 內建的 t.test() 函數驗證。

4.1 Computing the t statistic

t 值的公式為樣本平均數與檢定值(440)的差距,除以平均數的標準誤(\(SE = SD / \sqrt{n}\)):

\[t = \frac{M - 440}{SD / \sqrt{n}}\]

MP_t <- (MP - 440) / (MP_SD / sqrt(n))   # t = (M - 440) / (SD / sqrt(n))
MP_t
## [1] 66.70592

4.2 Computing the p value

pt() 會回傳 t 分配中小於某個 t 值的累積機率。以 1 - pt(abs(MP_t), df = n - 1) 算出單尾的機率後再乘以 2,即可得到雙尾檢定的 p 值,自由度為 \(n - 1\)。

PT <- 2 * (1 - pt(abs(MP_t), df = n - 1))   # 雙尾 p 值,自由度 df = n - 1
PT
## [1] 0

PT 顯示為 0,並不代表 p 值真的等於 0,而是 p 值過於小。

4.3 Verifying with t.test()

本段程式碼使用 R 內建的 t.test() 函數進行單一樣本 t 檢定,mu = 440 設定檢定值為 440。輸出結果包含 t 值、自由度、p 值、平均數的 95% 信賴區間與樣本平均數,可用來確認上面手動計算的結果是否正確。

t.test(PISA.dat$PV1MATH, mu = 440)   # 單一樣本 t 檢定,檢定值為 440
## 
##  One Sample t-test
## 
## data:  PISA.dat$PV1MATH
## t = 66.706, df = 5598, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 440
## 95 percent confidence interval:
##  534.9471 540.6968
## sample estimates:
## mean of x 
##   537.822

4.4 Conclusion