# 載入讀取 SPSS 資料的 haven 套件
library(haven)
# 讀取 PISA 2022 台灣學生資料
pisa.dat <- read_spss("PISA_tawian2022_trimmed_lab.sav")
# 查看 ESCS 變項的資料結構
str(pisa.dat$ESCS)
## dbl+lbl [1:5599] -0.3221, 0.1565, -0.5738, -0.8179, 0.5111, 0.2871, -2....
## @ label : chr "Index of economic, social and cultural status"
## @ format.spss: chr "F7.4"
## @ labels : Named num [1:4] 95 97 98 99
## ..- attr(*, "names")= chr [1:4] "Valid Skip" "Not Applicable" "Invalid" "No Response"
# 計算 ESCS 的描述性統計
summary(pisa.dat$ESCS)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -3.8421 -0.9395 -0.2368 -0.2701 0.4393 4.2070
Z 分數計算公式:
\[ Z = \frac{X-\bar{X}}{s} \]
# 使用 scale() 將 ESCS 標準化
# Z = (原始數值 - 平均數) / 標準差
# as.numeric() 將結果轉換為數值向量
pisa.dat$ESCS_z <- as.numeric(scale(pisa.dat$ESCS))
# 計算標準化後的平均數
z_mean <- mean(pisa.dat$ESCS_z, na.rm = TRUE)
# 計算標準化後的標準差
z_sd <- sd(pisa.dat$ESCS_z, na.rm = TRUE)
# 顯示 Z 分數平均數
round(z_mean, 2)
## [1] 0
# 顯示 Z 分數標準差
round(z_sd, 2)
## [1] 1
# 查看標準化後的描述性統計
summary(pisa.dat$ESCS_z)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -3.94341 -0.73905 0.03678 0.00000 0.78318 4.94265
# 繪製 Z 分數直方圖
hist(pisa.dat$ESCS_z,
main = "Histogram of ESCS Z-scores",
xlab = "ESCS Z-score",
ylab = "Frequency",
col = "lightblue",
border = "white")
# 加入 Z = 0 的平均數參考線
abline(v = 0, col = "red", lwd = 2)
本次分析使用 PISA 2022 台灣學生的 ESCS (經濟、社會與文化地位指數)進行 Z 分數標準化。
標準化後,Z 分數的平均數為 -0.00, 標準差為 1.00。
由直方圖可以觀察 ESCS 標準化後的資料分布情形。 紅色垂直線代表 Z = 0,也就是標準化後的平均數。