PISA 2018 R Analysis Guide · Analisi dei dati OCSE PISA R · EdSurvey

Analisi dei dati PISA 2018 con R

Guida pratica · OCSE PISA · Plausible Values · Replicate Weights · EdSurvey

Questa guida mostra come analizzare correttamente i dati dell'indagine OCSE PISA utilizzando R, rispettando le indicazioni metodologiche ufficiali per la stima di medie, regressioni e modelli multilivello su dati complessi con design campionario a più stadi.

Tre approcci a confronto: Analisi manuale con Plausible Values (regole di Rubin), analisi avanzata con replicate weights BRR, e utilizzo del pacchetto EdSurvey che automatizza entrambi i passaggi.

1 Analisi manuale (PV + Rubin)

Passaggi principali
  1. Import dati studenti e scuole
  2. Preparazione e join del dataset
  3. Definizione variabili di interesse
  4. Loop sui 10 Plausible Values
  5. Stima modello multilivello per ciascun PV
  6. Salvataggio coefficienti
  7. Combinazione con regole di Rubin
library(tidyverse)
library(lme4)

# Import dati
student <- read.csv("CY07_MSU_STU_QQQ.csv")
school  <- read.csv("CY07_MSU_SCH_QQQ.csv")

# Join studenti-scuole
data <- student %>%
  left_join(school, by = c("CNT", "CNTSCHID"))

2 Analisi avanzata (PV + BRR)

Per stime corrette degli errori standard è necessario combinare il loop sui 10 Plausible Values con il loop sugli 80 replicate weights BRR. La varianza finale tiene conto sia dell'incertezza campionaria che dell'imputazione multipla.

Schema: dataset → loop PV (10) → loop BRR (80) → stima modello → varianza BRR → regole di Rubin
rep_weights <- paste0("W_FSTR", 1:80)

pv_results <- list()

for (pv in 1:10) {

  pv_name  <- paste0("PV", pv, "FLIT")
  coef_reps <- matrix(NA, nrow = 80)

  for (r in 1:80) {

    weight_var <- rep_weights[r]
    data_analysis$weight <- data_analysis[[weight_var]]

    coef_reps[r, ] <- estimate_model(data_analysis, pv_name)
  }

  # Varianza campionaria BRR
  sampling_var <- (4 / 80) * colSums((coef_reps - colMeans(coef_reps))^2)

  pv_results[[pv]] <- list(
    coef = estimate_model(data_analysis, pv_name),
    sampling_var = sampling_var
  )
}

# Combinazione Rubin
final <- combine_rubin(pv_results)

3 Metodo EdSurvey

Il pacchetto EdSurvey automatizza la gestione di Plausible Values e replicate weights nelle grandi indagini educative internazionali (PISA, TIMSS, PIRLS, ecc.), riducendo drasticamente il codice necessario e minimizzando il rischio di errori metodologici.

install.packages("EdSurvey")
library(EdSurvey)

# Lettura dati PISA 2018 (International)
pisa <- readPISA(
  path     = "PISA2018/",
  database = "INT"
)

# Regressione con gestione automatica di PV e BRR
model <- lm.sdf(
  PVFLIT ~ ESCS + ST004D01T + IMMIG,
  data = pisa
)

summary(model)
Vantaggi EdSurvey: gestione automatica dei PV, calcolo corretto degli errori standard BRR, output compatibile con le linee guida OCSE. Consigliato per analisi di produzione.

Riferimenti