讀取資料

library(haven)
library(psych)

# 請將檔名改成你實際的 PISA 檔案名稱
pisa.dat <- read_spss("PISA_tawian2022_trimmed_lab.sav")
pisa.dat$ESCS <- as.numeric(zap_labels(pisa.dat$ESCS))

1. 計算 ESCS 的 Z 分數

pisa.dat$ESCS.z <- scale(pisa.dat$ESCS, center = TRUE, scale = TRUE)[, 1]
head(pisa.dat[, c("ESCS", "ESCS.z")])
## # A tibble: 6 × 2
##     ESCS  ESCS.z
##    <dbl>   <dbl>
## 1 -0.322 -0.0574
## 2  0.156  0.471 
## 3 -0.574 -0.335 
## 4 -0.818 -0.605 
## 5  0.511  0.862 
## 6  0.287  0.615

2. Z 分數之均值與標準差

describe(pisa.dat$ESCS.z)
##    vars    n mean sd median trimmed  mad   min  max range  skew kurtosis   se
## X1    1 5599    0  1   0.04    0.03 1.13 -3.94 4.94  8.89 -0.18    -0.31 0.01
z_mean <- mean(pisa.dat$ESCS.z, na.rm = TRUE)
z_sd   <- sd(pisa.dat$ESCS.z, na.rm = TRUE)

ESCS Z 分數的平均數為 0,標準差為 1。

3. Z 分數直方圖

hist(pisa.dat$ESCS.z,
     main = "Histogram of ESCS z-scores",
     xlab = "ESCS (z-score)")