library(readxl)
library(ade4)
library(FactoMineR)
library(ggplot2)
readRenviron("../.env")
FOLDER_PRJ <- Sys.getenv("FOLDER_PRJCT")
FOLDER_PROCESSED <- Sys.getenv("FOLDER_PROCESSED")
setwd(FOLDER_PRJ)Análisis STATIS
1 Análisis STATIS
STATIS (Structuration de Tableaux À Trois Indices de Statistique) es el método más potente del análisis para responder la pregunta central: ¿son coherentes entre sí las tablas anuales del GCI?
1.1 Implementación en R
1.2 Lectura y preparación de la K-tabla
# ── Lectura del archivo pivotado ──────────────────────────────────────────
filename <- file.path(FOLDER_PROCESSED, "data_pivoted_2.csv")
datos <- read.csv(filename)
datos <- as.data.frame(datos)
# Cada fila es una combinación Pilar-Año (ej. "3-2017")
rownames(datos) <- datos$PILAR
datos$PILAR <- NULL
# Solo columnas numéricas (países)
datos <- datos[, sapply(datos, is.numeric)]
# Eliminar columnas y filas completamente vacías
datos <- datos[, colSums(is.na(datos)) < nrow(datos)]
datos <- datos[rowSums(is.na(datos)) < ncol(datos), ]
# Imputación por media de columna
for (j in seq_len(ncol(datos))) {
idx_na <- is.na(datos[, j])
if (any(idx_na)) datos[idx_na, j] <- mean(datos[, j], na.rm = TRUE)
}
# Eliminar columnas de varianza cero
datos <- datos[, apply(datos, 2, sd) > 0]
# Metadatos de filas
nombres_filas <- rownames(datos)
pilar <- sub("-.*", "", nombres_filas)
anio <- sub(".*-", "", nombres_filas)
cat("✔ Datos preparados:", nrow(datos), "filas ×", ncol(datos), "columnas\n")1.3 Construcción de la K-tabla y aplicación de STATIS
# K-tabla: cada bloque = un país (columna del data.frame)
tablas_por_pais <- lapply(colnames(datos), function(pais) {
data.frame(valor = datos[[pais]], row.names = rownames(datos))
})
names(tablas_por_pais) <- colnames(datos)
ktab_paises <- ktab.list.df(
obj = tablas_por_pais,
tabnames = names(tablas_por_pais),
rownames = rownames(datos),
)
# ── Aplicación de STATIS ──────────────────────────────────────────────────
# scannf = FALSE → no pedir número de ejes interactivamente
# nf = 2 → retener 2 factores principales
res.statis <- statis(ktab_paises, scannf = FALSE, nf = 2)
cat("✔ STATIS calculado\n")
cat("\nCoeficiente RV (primeras 5×5):\n")
print(round(res.statis$RV[1:5, 1:5], 3))1.4 Interestructura: similitud entre tablas anuales

1.5 Compromiso y trayectorias de pilares
Habitualmente, se comparan pilares a lo largo de periodos, sin considerar los cambios metodológicos. A continuación STATIS permite cuantificar y visualizar si los cambios de los pilares a lo largo del periodo, corresponden a factores económicos, estructurales, o una mezcla de ambos. Para determinarlo se analizó los cambios a nivel estructural de los pilares año a año.

1.5.1 ¿Cuanto cambió estructuralmente un pilar?
| Rangos de cambio (%) del Pilar | Significado |
|---|---|
| < 5% | Ruido técnico o variación esperable. |
| 5% – 15% | Cambio leve / ajuste metodológico menor. |
| 15% – 25% | Cambio estructural moderado. |
| 25% | Cambio estructural fuerte. |
Para cuantificar el cambio estructural del pilar se calculó utilizando el promedio del coeficiente de correlación que obtuvo el pilar con el eje 1 del compromiso, separados en dos grupos: uno antes del cambio metodológico y el siguiente después del cambio metodológico. La siguiente tabla resume el criterio para determinar que tan importante es el cambio estructural del pilar. Es decir
\%\triangle P_n= 100 \times \frac{P_{n,\,C1.post} - P_{n,\,C1.prev}}{P_{n,\,C1.prev}}
| Cambio estructural por pilar | ||||||
| Pilar | Pre 2018 | Post 2018 | Δ absoluto | delta_pct | Δ % | cambio_llamativo |
|---|---|---|---|---|---|---|
| 10 | −0.277 | −0.149 | 0.128 | 0.461592435 | 46.16 | ⚠ Alto |
| 5 | −0.356 | −0.477 | 0.121 | 0.340241355 | 34.02 | ⚠ Alto |
| 2 | −0.288 | −0.353 | 0.065 | 0.224037782 | 22.40 | ⚠ Alto |
| 3 | −0.237 | −0.290 | 0.053 | 0.222834932 | 22.28 | ⚠ Alto |
| 12 | −0.283 | −0.222 | 0.062 | 0.218359490 | 21.84 | ⚠ Alto |
| 9 | −0.318 | −0.255 | 0.063 | 0.197305479 | 19.73 | Normal |
| 11 | −0.329 | −0.282 | 0.047 | 0.142356566 | 14.24 | Normal |
| 6 | −0.308 | −0.326 | 0.018 | 0.059331338 | 5.93 | Normal |
| 8 | −0.356 | −0.370 | 0.015 | 0.041361176 | 4.14 | Normal |
| 4 | −0.305 | −0.313 | 0.008 | 0.025203741 | 2.52 | Normal |
| 7 | −0.318 | −0.311 | 0.007 | 0.022694918 | 2.27 | Normal |
| 1 | −0.336 | −0.338 | 0.002 | 0.004644885 | 0.46 | Normal |


Chile en el mapa RV: Chile aparece en una zona intermedia, agrupado con países como España y Portugal — economías con mercados de tamaño mediano y un nivel de desarrollo institucional moderadamente alto. Su posición relativa confirma el puesto 33° en el GCI 2019.
1.6 Validación de Statis
La principal validación de STATIS es a través de los autovalores que se obtienen. Estos son un indicador de cuanta información (variabilidad) de los datos está contenida o es representada por los vectores de estos autovalores. Se espera que el primer autovalor sea mucho mayor que el resto de los ejes porque eso justifica que exista: es decir \lambda_{1} >> \lambda_{n+1}, con n=1,2....


El eje 1 de compromiso de STATIS es el eje que contiene practicamente toda la información de la estructura, separando claramente tipos de economías y el eje 2 del compromiso que aunque es residual, interpretativamente es relevante pues separa economías muy relegadas de economías más consolidadas.
Los resultados indican que:
Alto primer autovalor: Las estructuras son muy similares. No hay bloques estructurales muy diferenciados y el sistema es fuertemente coherente.
La estructura común domina fuertemente: Existen algunos pares de países con similitud moderada (~0.48), y también existen pares casi idénticos (~0.99).
El eje 1 captura prácticamente toda la variabilidad de las observaciones: La dimensión real del compromiso es 2, ya que se utilizó un nf=2 y la suma de los cos^2 es 1, lo que indica que la estructura inter-tablas es practicamente unidimensional.
Globalmente: No hay “modelos estructurales alternativos”. STATIS muestra muy claramente que hay una sola estructura dominante.