1. Introducción.

La clasificación tradicional entre países desarrollados y economías emergentes ha sido durante mucho tiempo el marco de referencia para comparar el desempeño económico a nivel global. Sin embargo, esta distinción, aunque útil, resulta insuficiente cuando se examinan con detalle los indicadores que determinan el funcionamiento de una economía. Países agrupados en una misma categoría pueden presentar grandes diferencias estructurales, mientras que economías pertenecientes a categorías distintas pueden compartir características similares.

Este trabajo parte de esa inquietud: ¿qué características económicas separan realmente a los países y los agrupan de una manera distinta a la clasificación convencional? El objetivo es identificar, a partir de los perfiles económicos de 50 países, qué variables explican las diferencias estructurales entre economías y si los agrupamientos que resultan de los datos coinciden o contradicen la división entre desarrollados y emergentes. Es decir, se busca dejar que los datos hablen y no partir de la etiqueta tradicional.

Para lograrlo se emplean dos técnicas de análisis multivariado. Primero, el Análisis de Componentes Principales (ACP), que reduce la complejidad de 15 variables económicas —crecimiento, empleo, comercio exterior, inversión, consumo, estructura productiva y estabilidad de precios— conservando la mayor parte de la información relevante. Segundo, la clusterización jerárquica con el método de Ward, que agrupa a los países según la similitud real de sus perfiles económicos. La combinación de ambas técnicas permite construir una tipología de países basada en los datos y no en clasificaciones previas.

2. Metodología.

Datos y variables.

La base de trabajo corresponde a la hoja datos del archivo base_paises_50_lista_R.xlsx. El año de referencia corresponde al año seleccionado del Banco Mundial para el ejercicio. La muestra contiene 50 países: 14 de América, 14 de Asia y 22 de Europa. Se conservaron únicamente observaciones de países, verificando que el código ISO3 tuviera tres letras mayúsculas, y se mantuvieron las 15 variables cuantitativas disponibles. No se detectaron valores faltantes en las variables analizadas.

library(readxl)
library(dplyr)
library(tidyr)
library(ggplot2)
library(psych)
library(corrplot)
library(factoextra)
library(cluster)
library(DT)
library(gridExtra)
library(scales)

theme_set(theme_minimal(base_size = 11))

ruta <- "base_paises_50_lista_R.xlsx"
base_original <- read_excel(ruta, sheet = "datos")
diccionario   <- read_excel(ruta, sheet = "diccionario")

base <- base_original %>%
  filter(
    !is.na(pais),
    !is.na(codigo),
    grepl("^[A-Z]{3}$", codigo)
  )

vars <- base %>%
  select(where(is.numeric)) %>%
  names()

etiquetas <- c(
  gasto_pib         = "Gasto público (% PIB)",
  ied_neta_usd      = "IED neta (USD)",
  import_merc_usd   = "Importaciones de mercancías",
  desempleo         = "Tasa de desempleo",
  pib_pc_ppa        = "PIB per cápita PPA",
  crec_pib          = "Crecimiento del PIB",
  inflacion         = "Inflación",
  agricultura       = "Agricultura (% PIB)",
  industria         = "Industria (% PIB)",
  exportaciones     = "Exportaciones B y S",
  cuenta_corriente  = "Cuenta corriente (% PIB)",
  ied_entradas      = "Entradas netas de IED",
  consumo_gob       = "Consumo del gobierno (% PIB)",
  manuf_exp         = "Exportaciones manufactureras",
  esp_vida          = "Esperanza de vida"
)

etiquetas_cortas <- c(
  gasto_pib         = "Gasto púb.",
  ied_neta_usd      = "IED neta",
  import_merc_usd   = "Import.",
  desempleo         = "Desempleo",
  pib_pc_ppa        = "PIB pc PPA",
  crec_pib          = "Crec. PIB",
  inflacion         = "Inflación",
  agricultura       = "Agricultura",
  industria         = "Industria",
  exportaciones     = "Export.",
  cuenta_corriente  = "Cta. corr.",
  ied_entradas      = "IED entr.",
  consumo_gob       = "Consumo gob.",
  manuf_exp         = "Manuf. exp.",
  esp_vida          = "Esp. vida"
)

datos_15 <- base %>%
  select(all_of(vars)) %>%
  rename_with(function(x) unname(etiquetas[x]), all_of(vars))

rownames(datos_15) <- base$pais
vars_et <- names(datos_15)

cat("Países en la muestra:", nrow(base), "\n")
## Países en la muestra: 50
cat("Variables cuantitativas:", length(vars_et), "\n")
## Variables cuantitativas: 15
cat("Regiones:", paste(names(table(base$region)), collapse = ", "), "\n")
## Regiones: America, Asia, Europa

La Tabla 1 resume el diccionario de variables. Las variables monetarias están expresadas en dólares corrientes y las restantes en porcentajes, años o índices, por lo que la estandarización es necesaria antes del ACP.

grupos <- c(
  gasto_pib        = "Sector público",
  ied_neta_usd     = "Sector externo",
  import_merc_usd  = "Sector externo",
  desempleo        = "Mercado laboral",
  pib_pc_ppa       = "Tamaño y capacidad productiva",
  crec_pib         = "Crecimiento",
  inflacion        = "Estabilidad macroeconómica",
  agricultura      = "Estructura productiva",
  industria        = "Estructura productiva",
  exportaciones    = "Sector externo",
  cuenta_corriente = "Sector externo",
  ied_entradas     = "Sector externo",
  consumo_gob      = "Sector público",
  manuf_exp        = "Estructura productiva",
  esp_vida         = "Bienestar social"
)

tabla_variables <- diccionario %>%
  filter(variable %in% vars) %>%
  mutate(
    N          = match(variable, vars),
    Variable   = unname(etiquetas[variable]),
    Grupo      = unname(grupos[variable]),
    Descripción = descripcion,
    Unidad     = unidad
  ) %>%
  arrange(N) %>%
  select(N, Variable, Grupo, Descripción, Unidad)

datatable(
  tabla_variables,
  colnames = c("N°", "Variable", "Grupo", "Descripción", "Unidad de medida"),
  rownames = FALSE,
  caption  = "Tabla 1. Descripción de las variables utilizadas en el estudio",
  options  = list(pageLength = 15, scrollX = TRUE, autoWidth = TRUE)
)

Para facilitar la interpretación, las 15 variables se organizaron en seis grupos: tamaño y capacidad productiva, crecimiento, sector externo, estructura productiva, estabilidad macroeconómica y sector público. Todas son variables cuantitativas continuas, lo que permite comparar economías y aplicar técnicas multivariadas como el ACP y la clusterización.

Procedimiento.

  1. Preparación: verificación de países, valores faltantes y estandarización de las 15 variables con scale().
  2. Análisis descriptivo: medidas de tendencia central y dispersión, histogramas, boxplots y matriz de correlaciones.
  3. ACP: extracción de componentes, varianza explicada, cargas, contribuciones y representación de países y variables.
  4. Clusterización: distancias euclidianas sobre los primeros cuatro componentes del ACP, agrupamiento jerárquico con ward.D2, dendrograma y selección de k mediante silueta media.
  5. Caracterización: tamaño de los clusters, composición regional, medias por variable y perfil estandarizado.

3. Resultados Descriptivos.

Tabla descriptiva.

La siguiente tabla presenta las principales medidas de tendencia central y dispersión de las variables cuantitativas. Estas estadísticas permiten identificar la distribución general de los datos, detectar asimetrías y comprender el rango de variabilidad presente en cada indicador.

desc <- psych::describe(datos_15) %>%
  as.data.frame()

tabla_descriptiva <- data.frame(
  Variable       = rownames(desc),
  Media          = desc$mean,
  Mediana        = desc$median,
  Desv_Estándar  = desc$sd,
  Mínimo         = desc$min,
  Máximo         = desc$max,
  CV             = 100 * desc$sd / abs(desc$mean)
)

tabla_descriptiva <- tabla_descriptiva %>%
  mutate(across(where(is.numeric), ~ round(.x, 2)))

datatable(
  tabla_descriptiva,
  rownames = FALSE,
  caption  = "Tabla 2. Estadísticas descriptivas de las variables económicas",
  colnames = c("Variable", "Media", "Mediana", "Desv. Estándar", "Mínimo", "Máximo", "CV (%)"),
  options  = list(pageLength = 15, scrollX = TRUE, autoWidth = TRUE)
)

En la Tabla 2 se observa una alta heterogeneidad entre países. Las variables asociadas al tamaño de la economía presentan los rangos más amplios: PIB per cápita PPA va de valores cercanos a 7.000 a más de 150.000 USD internacionales; Importaciones de mercancías y Exportaciones B y S también muestran grandes diferencias entre economías pequeñas y grandes. Los coeficientes de variación más altos corresponden a IED neta (USD), Inflación, Exportaciones manufactureras y Cuenta corriente (% PIB), lo que confirma la presencia de perfiles macroeconómicos muy distintos.

Las variables con comportamiento relativamente más estable son Esperanza de vida, Gasto público (% PIB), Consumo del gobierno (% PIB) y Tasa de desempleo, aunque incluso en estas se observan diferencias relevantes. Esta combinación de escalas y dispersiones justifica el uso de variables estandarizadas antes del ACP.

Histogramas.

Con el fin de identificar el comportamiento individual de las variables, se presentan los histogramas de cada indicador. La línea azul representa la media y la línea roja la mediana; su separación ayuda a detectar asimetrías y valores extremos.

datos_long <- datos_15 %>%
  pivot_longer(cols = everything(), names_to = "Variable", values_to = "Valor")

medias <- datos_long %>%
  group_by(Variable) %>%
  summarise(Media = mean(Valor, na.rm = TRUE), .groups = "drop")

medianas <- datos_long %>%
  group_by(Variable) %>%
  summarise(Mediana = median(Valor, na.rm = TRUE), .groups = "drop")

ggplot(datos_long, aes(x = Valor)) +
  geom_histogram(bins = 15, fill = "lightblue", color = "black") +
  facet_wrap(~ Variable, scales = "free", ncol = 3,
             labeller = label_wrap_gen(width = 22)) +
  geom_vline(data = medias, aes(xintercept = Media),
             color = "darkblue", linetype = "dashed", linewidth = 0.8) +
  geom_vline(data = medianas, aes(xintercept = Mediana),
             color = "red", linetype = "dotted", linewidth = 0.8) +
  scale_x_continuous(labels = label_number(scale_cut = cut_short_scale())) +
  labs(
    title = "Distribución de las variables económicas",
    x = NULL,
    y = "Frecuencia"
  ) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    strip.text = element_text(size = 8, face = "bold"),
    panel.spacing = unit(1, "lines")
  )

La mayoría de los histogramas presentan asimetría hacia la derecha, especialmente en las variables de magnitud económica y en aquellas dominadas por unos pocos países grandes o por casos extremos. En Inflación, IED neta (USD) y Cuenta corriente (% PIB) la mediana se separa claramente de la media, lo que refleja la influencia de valores atípicos. En contraste, Esperanza de vida, Gasto público (% PIB) y Consumo del gobierno (% PIB) muestran distribuciones más concentradas.

Boxplots.

A continuación se presentan diagramas de caja para las 15 variables, separados en dos grupos según sus unidades de medida. Esto permite comparar visualmente la dispersión y los valores atípicos sin que las diferencias de escala oculten el comportamiento de las variables porcentuales.

vars_porcentaje <- c(
  "Gasto público (% PIB)", "Tasa de desempleo", "Crecimiento del PIB",
  "Inflación", "Agricultura (% PIB)", "Industria (% PIB)",
  "Exportaciones B y S", "Cuenta corriente (% PIB)",
  "Entradas netas de IED", "Consumo del gobierno (% PIB)",
  "Exportaciones manufactureras"
)

vars_magnitud <- c(
  "IED neta (USD)", "Importaciones de mercancías",
  "PIB per cápita PPA", "Esperanza de vida"
)

boxplot_grupo <- function(datos, titulo) {
  datos %>%
    pivot_longer(cols = everything(), names_to = "Variable", values_to = "Valor") %>%
    ggplot(aes(x = reorder(Variable, Valor, median), y = Valor)) +
    geom_boxplot(fill = "lightblue", outlier.color = "darkblue") +
    coord_flip() +
    scale_y_continuous(labels = label_number(scale_cut = cut_short_scale())) +
    labs(title = titulo, x = NULL, y = "Valor") +
    theme(
      plot.title = element_text(face = "bold", hjust = 0.5),
      axis.text.y = element_text(size = 9)
    )
}

boxplot_grupo(datos_15[, vars_porcentaje], "Variables expresadas en tasas y porcentajes")

boxplot_grupo(datos_15[, vars_magnitud], "Variables de magnitud económica y bienestar")

En el primer grupo se observan valores atípicos en Inflación, Tasa de desempleo, Cuenta corriente (% PIB) y Exportaciones manufactureras. En el segundo, PIB per cápita PPA y Exportaciones B y S concentran los valores más extremos, asociados a economías pequeñas de altos ingresos y a grandes economías exportadoras. Estos valores se conservan porque corresponden a diferencias reales entre países y no a errores de registro; su efecto se mitiga parcialmente con la estandarización.

Valores atípicos.

La siguiente tabla cuantifica los valores atípicos identificados con el criterio de 1,5 veces el rango intercuartílico y señala los países que los registran.

atipicos <- lapply(datos_15, function(x) {
  q1 <- quantile(x, 0.25, na.rm = TRUE)
  q3 <- quantile(x, 0.75, na.rm = TRUE)
  iqr <- IQR(x, na.rm = TRUE)
  which(x < q1 - 1.5 * iqr | x > q3 + 1.5 * iqr)
})

tabla_atipicos <- data.frame(
  Variable = names(atipicos),
  Cantidad = sapply(atipicos, length),
  Países   = sapply(atipicos, function(idx) {
    if (length(idx) == 0) "Ninguno" else paste(base$pais[idx], collapse = ", ")
  })
)

datatable(
  tabla_atipicos,
  rownames = FALSE,
  caption  = "Tabla 3. Economías singulares por variable y países correspondientes",
  colnames = c("Variable", "Cantidad", "Países"),
  options  = list(pageLength = 15, scrollX = TRUE, autoWidth = TRUE)
)

La tabla confirma que los datos no siguen un comportamiento homogéneo. IED neta (USD) concentra el mayor número de valores extremos, seguida por Entradas netas de IED, Inflación y Cuenta corriente (% PIB). Casos como Argentina y Turquía en inflación, Singapur y Luxemburgo en PIB per cápita y exportaciones, y Camboya, India y Uzbekistán en agricultura, anticipan algunos de los ejes que el ACP identificará más adelante.

4. Método Análisis de Componentes Principales.

Matriz de Correlación.

Antes de aplicar el ACP es fundamental examinar la estructura de correlaciones entre las 15 variables para identificar redundancias y validar la pertinencia de la reducción de dimensionalidad. La matriz revela las asociaciones lineales entre pares de variables y ofrece una visión exploratoria de cómo se interrelacionan las dimensiones del desarrollo.

cor_matrix <- cor(datos_15, use = "complete.obs")
colnames(cor_matrix) <- rownames(cor_matrix) <- unname(etiquetas_cortas[vars])

corrplot(
  cor_matrix,
  method = "color",
  type = "upper",
  tl.cex = 0.7,
  tl.col = "black",
  tl.srt = 45,
  mar = c(0, 0, 1, 0)
)

Tabla de correlaciones significativas.

idx <- which(upper.tri(cor_matrix) & abs(cor_matrix) >= 0.6, arr.ind = TRUE)

cor_altas <- data.frame(
  Variable1   = rownames(cor_matrix)[idx[, 1]],
  Variable2   = colnames(cor_matrix)[idx[, 2]],
  Correlación = round(cor_matrix[idx], 3)
) %>%
  arrange(desc(abs(Correlación)))

datatable(
  cor_altas,
  rownames = FALSE,
  caption  = "Tabla 4. Pares de variables con correlación absoluta mayor o igual a 0.6",
  colnames = c("Variable 1", "Variable 2", "Correlación (r)"),
  options  = list(dom = "t", paging = FALSE, searching = FALSE,
                  ordering = TRUE, scrollX = TRUE)
)

Las correlaciones más fuertes aparecen entre Gasto público (% PIB) y Consumo del gobierno (% PIB) (0.796), Agricultura (% PIB) y Esperanza de vida (-0.780), PIB per cápita PPA y Esperanza de vida (0.753), y PIB per cápita PPA y Exportaciones B y S (0.743). También destaca la relación negativa entre PIB per cápita PPA y Agricultura (% PIB) (-0.712).

Estas asociaciones tienen sentido económico: las economías más ricas gastan más en consumo público, tienen mayor esperanza de vida, exportan más y dependen menos de la agricultura. Aunque la correlación es alta, las variables se conservaron porque el ACP puede resumir la redundancia sin sacrificar información y porque cada indicador aporta matices distintos al perfil de los países.

Aplicación del ACP.

El ACP se aplicó al conjunto de 15 variables estandarizadas con el objetivo de identificar las dimensiones latentes que explican la variabilidad entre los países. El procedimiento transforma las variables originales en componentes no correlacionados, ordenados de mayor a menor según la varianza que retienen. Los primeros componentes concentran la mayor parte de la información y permiten reducir la dimensionalidad sin perder los patrones relevantes.

Justificación del ACP en este estudio:

  • Reducción de redundancia: la matriz de correlación reveló varios pares con correlaciones superiores a 0.70, lo que indica información compartida que puede sintetizarse.
  • Eliminación de ruido: al transformar las variables en componentes no correlacionados, el ACP separa la variabilidad estructurada de la variabilidad aleatoria.
  • Facilidad en la clusterización: los componentes sirven como insumo para el agrupamiento jerárquico, evitando los problemas de multicolinealidad que tendría usar directamente las 15 variables.

Tabla: varianza explicada por componentes principales.

datos_std <- scale(datos_15)
res.pca   <- prcomp(datos_std, center = TRUE, scale. = TRUE)
eig.val   <- get_eigenvalue(res.pca)

tabla_varianza <- data.frame(
  Componente        = paste0("PC", 1:nrow(eig.val)),
  Eigenvalue        = round(eig.val$eigenvalue, 3),
  Varianza          = round(eig.val$variance.percent, 2),
  Varianza_Acumulada = round(eig.val$cumulative.variance.percent, 2)
)

datatable(
  tabla_varianza,
  rownames = FALSE,
  colnames = c("Componente", "Eigenvalue", "Varianza (%)", "Varianza Acumulada (%)"),
  caption  = "Tabla 5. Varianza explicada por los componentes principales",
  options  = list(dom = "t", paging = FALSE, searching = FALSE,
                  ordering = FALSE, scrollX = TRUE)
)

La tabla muestra que los cuatro primeros componentes tienen autovalores mayores que 1.2 y explican en conjunto el 67.15% de la varianza: PC1 aporta 31.89%, PC2 16.25%, PC3 10.65% y PC4 8.36%. El quinto componente apenas supera el umbral de Kaiser (1.02) y añade 6.79%, por lo que no se retiene: no aporta una dimensión interpretable adicional y la ganancia en información es marginal frente al costo de complejidad.

Gráfico de sedimentación.

El gráfico de sedimentación permite visualizar la importancia de cada componente mediante el concepto del codo. Las barras representan la varianza explicada, ordenadas de mayor a menor.

eig_df <- data.frame(
  dimension = 1:nrow(eig.val),
  varianza  = eig.val$variance.percent
)

ggplot(eig_df, aes(x = factor(dimension), y = varianza, fill = varianza)) +
  geom_col(width = 0.7, color = "white") +
  geom_line(aes(group = 1), color = "#0B1F3A", linewidth = 0.8) +
  geom_point(color = "#0B1F3A", size = 2.3) +
  geom_text(aes(label = paste0(round(varianza, 1), "%")),
            vjust = -0.6, size = 2.8, color = "#0B1F3A", fontface = "bold") +
  scale_fill_gradient(low = "#a8c8e8", high = "#0B1F3A") +
  scale_y_continuous(expand = expansion(mult = c(0, 0.12))) +
  labs(
    title    = "Varianza explicada por componente principal",
    subtitle = "Gráfico de sedimentación",
    x        = "Componente principal",
    y        = "Varianza explicada (%)"
  ) +
  theme(
    legend.position    = "none",
    plot.title         = element_text(face = "bold", color = "#0B1F3A", size = 14),
    plot.subtitle      = element_text(color = "gray40", size = 10),
    panel.grid.major.x = element_blank()
  )

Se observa un descenso pronunciado en los primeros componentes: PC1, PC2, PC3 y PC4 son claramente superiores al resto y acumulan el 67.15% de la varianza. A partir del quinto componente la pendiente se aplana y los componentes posteriores explican proporciones cada vez menores. El codo se ubica alrededor del cuarto componente, lo que confirma que retener cuatro dimensiones es suficiente para representar la estructura subyacente de los datos.

Interpretación de los componentes.

PC1: Desarrollo económico y bienestar (31.89% de varianza).

PC1 mide el nivel de desarrollo económico y bienestar de un país. Los valores altos corresponden a economías con mayor PIB per cápita, mayor esperanza de vida, mayor gasto público y mayor consumo del gobierno; los valores bajos, a economías con mayor peso de la agricultura y crecimiento más volátil. En el extremo positivo se ubican Luxemburgo, Países Bajos, Alemania, Bélgica y Francia; en el extremo negativo, Camboya, Uzbekistán, Paraguay, India y Filipinas.

grafico_cargas <- function(pc, variables, titulo) {
  cargas_df <- data.frame(
    Variable = rownames(res.pca$rotation),
    Carga    = res.pca$rotation[, pc]
  )
  cargas_df %>%
    filter(Variable %in% variables) %>%
    ggplot(aes(x = reorder(Variable, Carga), y = Carga, fill = Carga > 0)) +
    geom_col(width = 0.6) +
    coord_flip() +
    scale_fill_manual(values = c("TRUE" = "#2166AC", "FALSE" = "#B2182B"),
                      guide = "none") +
    geom_hline(yintercept = 0, linewidth = 0.5) +
    geom_text(aes(label = round(Carga, 2),
                  hjust = ifelse(Carga > 0, -0.2, 1.2)), size = 3.2) +
    scale_y_continuous(expand = expansion(mult = c(0.1, 0.15))) +
    labs(title = titulo, subtitle = "Variables que definen el componente",
         x = NULL, y = "Carga factorial") +
    theme(
      plot.title    = element_text(face = "bold", color = "#1a3a5c", size = 12, hjust = 0.5),
      plot.subtitle = element_text(size = 9, color = "#555555", hjust = 0.5),
      panel.grid.major.y = element_blank()
    )
}

grafico_cargas(
  1,
  c("Esperanza de vida", "PIB per cápita PPA", "Consumo del gobierno (% PIB)",
    "Gasto público (% PIB)", "Agricultura (% PIB)", "Crecimiento del PIB"),
  "PC1: Desarrollo económico y bienestar (31.89%)"
)

Gráfico de países PC1.

coordenadas <- as.data.frame(res.pca$x[, 1:4])
coordenadas$Pais <- rownames(coordenadas)

grafico_paises <- function(pc, paises, titulo, etiqueta_baja, etiqueta_alta) {
  coordenadas %>%
    filter(Pais %in% paises) %>%
    mutate(
      Estado   = ifelse(.data[[pc]] < 0, etiqueta_baja, etiqueta_alta),
      Etiqueta = paste0(Pais, " (", round(.data[[pc]], 2), ")")
    ) %>%
    ggplot(aes(x = reorder(Etiqueta, .data[[pc]]), y = .data[[pc]], color = Estado)) +
    geom_point(size = 3) +
    geom_segment(aes(xend = Etiqueta, y = 0, yend = .data[[pc]]),
                 alpha = 0.5, linewidth = 0.5) +
    coord_flip() +
    geom_hline(yintercept = 0, linewidth = 0.5) +
    scale_color_manual(values = setNames(c("#B2182B", "#2166AC"),
                                         c(etiqueta_baja, etiqueta_alta))) +
    labs(title = titulo, subtitle = paste(etiqueta_baja, "(rojo) vs", etiqueta_alta, "(azul)"),
         x = NULL, y = "Coordenada en el componente", color = "") +
    theme(
      plot.title    = element_text(face = "bold", color = "#1a3a5c", size = 12, hjust = 0.5),
      plot.subtitle = element_text(size = 9, color = "#555555", hjust = 0.5),
      legend.position = "bottom"
    )
}

grafico_paises(
  "PC1",
  c("Cambodia", "Uzbekistan", "Paraguay", "India", "Philippines",
    "Luxembourg", "Netherlands", "Germany", "Belgium", "France"),
  "PC1: Desarrollo económico y bienestar (31.89%)",
  "Menor desarrollo", "Mayor desarrollo"
)

PC2: Tensión laboral y externa (16.25% de varianza).

PC2 separa a los países con mayor desempleo y mayor gasto público de aquellos con mejores saldos de cuenta corriente, mayores exportaciones y mayor peso industrial. Los valores altos se asocian con tensiones en el mercado laboral y presión sobre las cuentas fiscales; los valores bajos, con economías exportadoras y superavitarias. En el extremo positivo destacan Grecia, Argentina, Uruguay, Colombia y Francia; en el negativo, Singapur, Emiratos Árabes Unidos, Camboya, Noruega y Suiza.

grafico_cargas(
  2,
  c("Tasa de desempleo", "Gasto público (% PIB)", "Consumo del gobierno (% PIB)",
    "Cuenta corriente (% PIB)", "Exportaciones B y S", "Industria (% PIB)"),
  "PC2: Tensión laboral y externa (16.25%)"
)

Gráfico de países PC2.

grafico_paises(
  "PC2",
  c("Greece", "Argentina", "Uruguay", "Colombia", "France",
    "Singapore", "United Arab Emirates", "Cambodia", "Norway", "Switzerland"),
  "PC2: Tensión laboral y externa (16.25%)",
  "Fortaleza externa", "Tensión laboral/externa"
)

PC3: Orientación manufacturera y comercial (10.65% de varianza).

PC3 refleja la orientación manufacturera y comercial de la economía frente a la presión inflacionaria y la menor capacidad de importación. Los valores altos se asocian con menor participación de las exportaciones manufactureras, menor IED neta y menores importaciones, junto con mayor desempleo e inflación; los valores bajos, con economías manufactureras y exportadoras. En el extremo positivo se ubican Argentina, Singapur, Noruega, Chile y Emiratos Árabes Unidos; en el negativo, Japón, Alemania, India, Filipinas y Camboya.

grafico_cargas(
  3,
  c("Exportaciones manufactureras", "IED neta (USD)", "Importaciones de mercancías",
    "Tasa de desempleo", "Inflación", "Entradas netas de IED"),
  "PC3: Orientación manufacturera y comercial (10.65%)"
)

PC4: Estructura industrial con presión de precios (8.36% de varianza).

PC4 combina una mayor participación de la industria y una mayor inflación con un menor crecimiento del PIB y menores exportaciones. Los valores altos identifican economías con estructura industrial pero con presión de precios y bajo dinamismo exportador; los valores bajos, economías con menor presión inflacionaria y mayor orientación exportadora. En el extremo positivo destacan Argentina, Japón, Arabia Saudita, Noruega y Perú; en el negativo, Singapur, Luxemburgo, Costa Rica, India y Portugal.

grafico_cargas(
  4,
  c("Industria (% PIB)", "Inflación", "IED neta (USD)",
    "Crecimiento del PIB", "Exportaciones B y S", "Exportaciones manufactureras"),
  "PC4: Estructura industrial con presión de precios (8.36%)"
)

Tabla de caracterización de factores.

La Tabla 6 resume de manera integrada lo observado en los gráficos anteriores. Para cada componente se presenta el nombre asignado, su interpretación práctica, las variables clave y los países más representativos en cada extremo.

tabla_factores <- data.frame(
  Componente = c("PC1", "PC2", "PC3", "PC4"),
  Varianza   = c("31.89%", "16.25%", "10.65%", "8.36%"),
  Nombre     = c(
    "Desarrollo económico y bienestar",
    "Tensión laboral y externa",
    "Orientación manufacturera y comercial",
    "Estructura industrial con presión de precios"
  ),
  Interpretación = c(
    "Mayores ingresos por habitante, esperanza de vida y gasto público se oponen a mayor peso agrícola y crecimiento volátil.",
    "Mayor desempleo y gasto público frente a mejores saldos de cuenta corriente, exportaciones e industria.",
    "Orientación manufacturera y comercial frente a presión inflacionaria y menor capacidad de importación.",
    "Estructura industrial con presión de precios y bajo crecimiento exportador."
  ),
  Variables_Clave = c(
    "Esperanza de vida (+), PIB pc PPA (+), Consumo gob. (+), Agricultura (-), Crec. PIB (-)",
    "Desempleo (+), Gasto púb. (+), Cuenta corriente (-), Exportaciones (-), Industria (-)",
    "Manuf. exp. (-), IED neta (-), Importaciones (-), Desempleo (+), Inflación (+)",
    "Industria (+), Inflación (+), IED neta (+), Crec. PIB (-), Exportaciones (-)"
  ),
  Países_Altos = c(
    "Luxemburgo (4.77), Países Bajos (3.82), Alemania (3.22) → mayor desarrollo",
    "Grecia (3.01), Argentina (2.31), Uruguay (2.22) → tensión laboral/externa",
    "Argentina (3.18), Singapur (3.07), Noruega (1.88) → presión macro",
    "Argentina (3.60), Japón (2.29), Arabia Saudita (2.25) → industria con precios altos"
  ),
  Países_Bajos = c(
    "Camboya (-4.32), Uzbekistán (-4.07), Paraguay (-3.21) → menor desarrollo",
    "Singapur (-4.90), Emiratos Árabes Unidos (-4.63), Camboya (-2.60) → fortaleza externa",
    "Japón (-3.33), Alemania (-2.06), India (-2.00) → orientación manufacturera",
    "Singapur (-2.44), Luxemburgo (-2.29), Costa Rica (-1.45) → bajo crecimiento exportador"
  )
)

datatable(
  tabla_factores,
  rownames = FALSE,
  colnames = c("Componente", "Varianza", "Nombre del factor", "Interpretación",
               "Variables clave", "Países con valores altos", "Países con valores bajos"),
  caption  = "Tabla 6. Caracterización de los componentes principales",
  options  = list(dom = "t", pageLength = 10, scrollX = TRUE, autoWidth = TRUE)
)

Gráficos del ACP - Variables e individuos.

Dimensión 1 vs Dimensión 2.

El siguiente gráfico permite visualizar cómo se agrupan o separan los países según sus valores en las dos primeras dimensiones. El tamaño y el color de los puntos reflejan la calidad de representación (cos²): los países mejor representados se ubican más lejos del centro y aportan más a la estructura del plano.

fviz_pca_ind(
  res.pca,
  col.ind = "cos2",
  gradient.cols = c("#B2182B", "#FDDBC7", "#2166AC"),
  geom.ind = "point",
  pointsize = 1.8,
  labelsize = 2.8,
  repel = TRUE,
  title = "Países en el plano PC1-PC2 según calidad de representación"
)

El plano PC1-PC2 muestra una separación clara entre las economías de mayor desarrollo y bienestar, ubicadas hacia la derecha (PC1 alto), y las economías con mayor peso agrícola y menor ingreso, hacia la izquierda. En el eje vertical, los países con mayor desempleo y presión externa se ubican arriba, mientras que las economías exportadoras y superavitarias se concentran abajo. Singapur y Emiratos Árabes Unidos aparecen como casos extremos en PC2, y Camboya y Uzbekistán en PC1.

Gráfico de variables.

fviz_pca_var(
  res.pca,
  col.var = "contrib",
  gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
  labelsize = 3,
  repel = TRUE,
  title = "Variables en el plano PC1-PC2 según contribución"
)

Las variables se ordenan siguiendo los mismos ejes: Esperanza de vida, PIB per cápita PPA, Consumo del gobierno (% PIB) y Gasto público (% PIB) apuntan hacia el desarrollo, mientras que Agricultura (% PIB) y Crecimiento del PIB apuntan en dirección opuesta. En el eje vertical, Tasa de desempleo se opone a Cuenta corriente (% PIB), Exportaciones B y S e Industria (% PIB), lo que confirma la interpretación de PC2 como tensión laboral y externa.

Biplot Dimensión 1 y Dimensión 2.

fviz_pca_biplot(
  res.pca,
  repel = TRUE,
  labelsize = 2.5,
  col.var = "#2C7BB6",
  col.ind = "#999999",
  title = "Biplot del ACP: PC1 y PC2"
)

El biplot combina la posición de los países con la dirección de las variables. Las economías avanzadas se ubican en el cuadrante de mayor desarrollo y menor tensión externa; las economías emergentes con base agrícola, en el cuadrante opuesto; y los casos de alta inflación o desempleo se separan verticalmente. Esta representación anticipa la estructura de los clusters que se obtendrán con Ward.

Biplot Dimensión 1 y Dimensión 3.

fviz_pca_biplot(
  res.pca,
  axes = c(1, 3),
  repel = TRUE,
  labelsize = 2.5,
  col.var = "#2C7BB6",
  col.ind = "#999999",
  title = "Biplot del ACP: PC1 y PC3"
)

El plano PC1-PC3 añade la orientación manufacturera y comercial. Japón y Alemania se separan hacia el extremo negativo de PC3, mientras que Argentina y Singapur se ubican hacia el extremo positivo. Esto muestra que, incluso entre economías de alto ingreso, existen diferencias en la estructura exportadora y en la presión macroeconómica que no se aprecian solo con PC1 y PC2.

Contribución de variables a cada componente.

p1 <- fviz_contrib(res.pca, choice = "var", axes = 1, top = 10,
                   fill = "#2C7BB6", color = "#2C7BB6") +
  labs(title = "Contribución a PC1")
p2 <- fviz_contrib(res.pca, choice = "var", axes = 2, top = 10,
                   fill = "#2C7BB6", color = "#2C7BB6") +
  labs(title = "Contribución a PC2")
p3 <- fviz_contrib(res.pca, choice = "var", axes = 3, top = 10,
                   fill = "#2C7BB6", color = "#2C7BB6") +
  labs(title = "Contribución a PC3")
p4 <- fviz_contrib(res.pca, choice = "var", axes = 4, top = 10,
                   fill = "#2C7BB6", color = "#2C7BB6") +
  labs(title = "Contribución a PC4")

grid.arrange(p1, p2, p3, p4, ncol = 2)

Las contribuciones confirman qué variables sostienen cada dimensión. En PC1 dominan Esperanza de vida, PIB per cápita PPA, Agricultura (% PIB), Consumo del gobierno (% PIB) y Gasto público (% PIB). En PC2 destacan Cuenta corriente (% PIB), Tasa de desempleo, Exportaciones B y S e Industria (% PIB). En PC3 sobresalen Exportaciones manufactureras, IED neta (USD) e Importaciones de mercancías. En PC4, Industria (% PIB), Inflación, Crecimiento del PIB y Exportaciones B y S explican la mayor parte de la varianza residual.

5. Clusterización por Factores.

Después de analizar los componentes del ACP, se procedió a clusterizar los países con el método jerárquico de Ward sobre las coordenadas de los cuatro primeros componentes. Para seleccionar el número de clusters se calculó la silueta media para valores de k entre 2 y 8.

factores  <- as.data.frame(res.pca$x[, 1:4])
names(factores) <- paste0("PC", 1:4)

dist_fact <- dist(factores, method = "euclidean")
hc        <- hclust(dist_fact, method = "ward.D2")

sil_vals <- sapply(2:8, function(k) {
  mean(cluster::silhouette(cutree(hc, k = k), dist_fact)[, 3])
})

sil_df <- data.frame(k = 2:8, silueta = as.numeric(sil_vals))

ggplot(sil_df, aes(x = factor(k), y = silueta, fill = k == 4)) +
  geom_col(width = 0.7) +
  geom_text(aes(label = round(silueta, 3)), vjust = -0.3, size = 3.3) +
  scale_fill_manual(values = c("FALSE" = "#A6CEE3", "TRUE" = "#1F78B4"),
                    guide = "none") +
  ylim(0, max(sil_df$silueta) * 1.15) +
  labs(
    title    = "Número óptimo de clusters — factores del ACP",
    subtitle = "La barra azul oscuro resalta la solución adoptada (k = 4)",
    x        = "Número de clusters (k)",
    y        = "Ancho promedio de la silueta"
  ) +
  theme(plot.title = element_text(face = "bold", hjust = 0.5))

La silueta media más alta se obtiene con k = 2 (0.316), pero una división en dos grupos resulta demasiado gruesa para caracterizar el desarrollo de los países. Con k = 4 la silueta es 0.305, muy cercana a la máxima, y el dendrograma muestra cuatro ramas principales con perfiles diferenciados. Por ello se adopta k = 4 como solución de compromiso entre calidad del agrupamiento e interpretabilidad.

Dendrograma.

fviz_dend(
  hc,
  k = 4,
  cex = 0.5,
  rect = TRUE,
  k_colors = c("#D7191C", "#2C7BB6", "#1A9641", "#FDAE61"),
  main = "Dendrograma del agrupamiento jerárquico (Ward) sobre los factores del ACP"
)

El dendrograma confirma la existencia de cuatro ramas principales. La primera reúne a economías de ingreso medio con tensiones macroeconómicas; la segunda, a economías emergentes con base agrícola; la tercera, a economías avanzadas industrializadas y exportadoras; y la cuarta, a un grupo pequeño de economías de altos ingresos y alta apertura. La altura de las uniones sugiere que la separación más fuerte se produce entre el grupo de economías avanzadas y el resto.

Caracterización de Clústeres.

Para identificar el perfil económico de cada grupo se calcularon las medias de las 15 variables en los clusters obtenidos.

clusters <- cutree(hc, k = 4)
base_cl  <- base %>%
  mutate(cluster = factor(clusters, labels = paste0("C", 1:4)))

datos_cl <- datos_15 %>%
  mutate(cluster = base_cl$cluster)

paises_cl <- data.frame(cluster = base_cl$cluster, pais = base_cl$pais) %>%
  group_by(cluster) %>%
  summarise(Paises = paste(pais, collapse = ", "), .groups = "drop")

tabla_cl <- datos_cl %>%
  group_by(cluster) %>%
  summarise(`N° países` = n(), .groups = "drop") %>%
  left_join(paises_cl, by = "cluster")

datatable(
  tabla_cl,
  rownames = FALSE,
  caption  = "Tabla 7. Tamaño y composición de cada cluster",
  colnames = c("Cluster", "N° países", "Países"),
  options  = list(pageLength = 4, scrollX = TRUE, autoWidth = TRUE)
)
tab_region <- as.data.frame.matrix(table(base_cl$region, base_cl$cluster)) %>%
  tibble::rownames_to_column("Región")

datatable(
  tab_region,
  rownames = FALSE,
  caption  = "Tabla 8. Distribución regional por cluster",
  options  = list(dom = "t", paging = FALSE, searching = FALSE,
                  scrollX = TRUE, autoWidth = TRUE)
)

La composición regional muestra que los clusters no reproducen simplemente la geografía. El C1 combina seis países de América y seis de Europa; el C2 reúne ocho de América y nueve de Asia; el C3 concentra catorce países europeos y tres asiáticos; y el C4 incluye dos países de Asia y dos de Europa. La pertenencia a un cluster responde, por tanto, a características económicas y no a la región.

medias_cl <- datos_cl %>%
  group_by(cluster) %>%
  summarise(across(all_of(vars_et), ~ round(mean(.x), 2)), .groups = "drop") %>%
  left_join(paises_cl, by = "cluster") %>%
  relocate(Paises, .after = cluster)

datatable(
  medias_cl,
  rownames = FALSE,
  caption  = "Tabla 9. Medias por cluster con países — clusterización sobre factores del ACP",
  options  = list(pageLength = 4, scrollX = TRUE, autoWidth = TRUE)
)

Perfil estandarizado.

perfil_z <- datos_cl %>%
  mutate(across(all_of(vars_et), ~ as.numeric(scale(.x)))) %>%
  group_by(cluster) %>%
  summarise(across(all_of(vars_et), mean), .groups = "drop") %>%
  pivot_longer(-cluster, names_to = "Variable", values_to = "z")

ggplot(perfil_z, aes(x = cluster, y = reorder(Variable, z, mean), fill = z)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(z, 1)), size = 2.6) +
  scale_fill_gradient2(low = "#2166AC", mid = "white", high = "#B2182B",
                       midpoint = 0, name = "z") +
  labs(
    x = "Cluster",
    y = NULL,
    title = "Perfil estandarizado de los clusters"
  ) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    axis.text.y = element_text(size = 8)
  )

El mapa de calor permite comparar los perfiles: el C1 se distingue por inflación, desempleo y cuenta corriente negativa; el C2, por agricultura, industria y crecimiento; el C3, por exportaciones manufactureras, consumo público y esperanza de vida; y el C4, por PIB per cápita, exportaciones y superávit externo.

A partir de las medias se asignaron las siguientes caracterizaciones:

Clúster 1 (12 países): Ingreso medio con tensiones macroeconómicas.

Incluye: Argentina, Brasil, Chile, Colombia, Costa Rica, Uruguay, Bulgaria, Croacia, Grecia, Lituania, Portugal y Turquía.

Este cluster reúne economías de ingreso medio y medio-alto con los mayores desequilibrios macroeconómicos de la muestra. Presenta la inflación media más alta (21.0%), la tasa de desempleo más elevada (7.8%) y el saldo de cuenta corriente más negativo (-1.97% del PIB). Su PIB per cápita promedio es intermedio (37,051 USD PPA) y su esperanza de vida ronda los 78.7 años.

La combinación de inflación alta, desempleo elevado y déficit externo sugiere economías con presión sobre los precios y el mercado laboral, que compensan parcialmente con un nivel de ingreso y bienestar superior al de los países del C2. La presencia de Grecia, Portugal, Croacia, Bulgaria y Lituania junto a economías latinoamericanas muestra que la etiqueta tradicional de “desarrollado” no garantiza un perfil macroeconómico estable.

Clúster 2 (17 países): Emergentes de menor ingreso y base agrícola.

Incluye: República Dominicana, El Salvador, Guatemala, México, Nicaragua, Paraguay, Perú, Honduras, Camboya, India, Kazajistán, Malasia, Filipinas, Arabia Saudita, Sri Lanka, Tailandia y Uzbekistán.

Este grupo está integrado por economías emergentes de América Latina y Asia. Tiene el menor PIB per cápita (20,726 USD PPA), la mayor participación de la agricultura (9.59% del PIB), la menor esperanza de vida (74.2 años) y el menor consumo público (13% del PIB), pero el mayor crecimiento económico (3.45%). La estructura productiva combina agricultura e industria, con una participación exportadora moderada.

La heterogeneidad interna es relevante: incluye economías de ingreso medio como México y Malasia, economías de renta alta dependientes de recursos como Arabia Saudita y economías de menor ingreso como Camboya, India y Uzbekistán. Esto refuerza la idea de que el nivel de ingreso por sí solo no define un perfil económico homogéneo.

Clúster 3 (17 países): Economías avanzadas industrializadas y exportadoras.

Incluye: Israel, Japón, Corea del Sur, Austria, Bélgica, Dinamarca, Finlandia, Francia, Alemania, Hungría, Italia, Países Bajos, Polonia, Eslovenia, España, Suiza y Reino Unido.

Los países de este grupo presentan el mayor PIB per cápita promedio (64,033 USD PPA), la mayor orientación hacia exportaciones manufactureras (76.2%), el mayor consumo público (21% del PIB), la menor participación agrícola (1.54%) y una esperanza de vida de 82 años. Su saldo de cuenta corriente es positivo (2.57% del PIB), lo que refleja una posición externa favorable.

En contraste, este cluster muestra el menor crecimiento económico (0.63%), lo que sugiere economías maduras y estables, pero con menor dinamismo. La presencia de España, Polonia, Hungría y Eslovenia junto a Alemania, Japón o Suiza indica que el grupo reúne economías con estructuras productivas y niveles de ingreso diversos, unidas por su orientación industrial y exportadora.

Clúster 4 (4 países): Pequeñas economías de altos ingresos y alta apertura.

Incluye: Singapur, Emiratos Árabes Unidos, Luxemburgo y Noruega.

Este grupo presenta el mayor PIB per cápita (120,778 USD PPA), la mayor apertura exportadora (138% del PIB), el mayor superávit de cuenta corriente (13.59% del PIB) y la mayor esperanza de vida (83.1 años). Su participación agrícola es mínima (0.66%) y su consumo público es bajo (15% del PIB).

Los cuatro países comparten un tamaño pequeño, una elevada inserción externa y una posición financiera acreedora, pero sus modelos económicos son distintos: Singapur y Emiratos Árabes Unidos son centros comerciales y logísticos; Luxemburgo es un centro financiero; y Noruega es un exportador de recursos naturales con un fondo soberano de gran tamaño. Por tratarse de un grupo pequeño, su interpretación debe tomarse con cautela.

Plano ACP por clúster.

Por último, se presenta el plano del ACP conformado por PC1 y PC2, las dimensiones con mayor capacidad explicativa, que corresponden al desarrollo económico y bienestar y a la tensión laboral y externa.

coords_cl <- as.data.frame(res.pca$x[, 1:2])
names(coords_cl) <- c("PC1", "PC2")
coords_cl$Pais    <- rownames(coords_cl)
coords_cl$Cluster <- base_cl$cluster

ggplot(coords_cl, aes(x = PC1, y = PC2, color = Cluster, label = Pais)) +
  geom_point(size = 2.8) +
  ggrepel::geom_text_repel(size = 2.4, max.overlaps = 25, show.legend = FALSE) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray60") +
  geom_vline(xintercept = 0, linetype = "dashed", color = "gray60") +
  scale_color_manual(values = c(
    "C1" = "#D7191C",
    "C2" = "#2C7BB6",
    "C3" = "#1A9641",
    "C4" = "#FDAE61"
  )) +
  labs(
    title    = "Países en el plano ACP coloreados por cluster",
    subtitle = "PC1 (31.9%) vs PC2 (16.3%)",
    x        = "PC1 — Desarrollo económico y bienestar (31.9%)",
    y        = "PC2 — Tensión laboral y externa (16.3%)",
    color    = ""
  ) +
  theme(
    plot.title    = element_text(face = "bold", color = "#1a3a5c", size = 12, hjust = 0.5),
    plot.subtitle = element_text(size = 9, color = "#555555", hjust = 0.5),
    legend.position = "bottom"
  )

El plano sustenta los resultados de la clusterización. En el eje horizontal (PC1) se observa a Camboya, Uzbekistán, Paraguay, India y Filipinas en el extremo izquierdo, reflejando menor desarrollo y mayor peso agrícola; en el extremo derecho se ubican Luxemburgo, Países Bajos, Alemania, Bélgica y Francia, con mayores ingresos, esperanza de vida y gasto público. En el eje vertical (PC2), Grecia, Argentina, Uruguay y Colombia se separan hacia arriba por sus tensiones laborales y externas, mientras que Singapur, Emiratos Árabes Unidos, Noruega y Suiza se ubican abajo por su fortaleza externa.

El C1 se distribuye en el cuadrante de ingreso medio con tensiones macroeconómicas; el C2 ocupa la zona de menor desarrollo y mayor peso agrícola; el C3 se concentra en la zona de mayor desarrollo y orientación exportadora; y el C4 se separa por su alta apertura y superávit externo. La cercanía entre países de regiones distintas dentro de un mismo cluster confirma que las características económicas, más que la geografía o la etiqueta tradicional, explican la agrupación.

6. Conclusiones.

El análisis de aprendizaje no supervisado permitió evidenciar que las características que separan a los países no coinciden simplemente con la clasificación tradicional entre economías desarrolladas y emergentes. Los datos sugieren que el desarrollo económico y bienestar (PC1) y la tensión laboral y externa (PC2) son las dimensiones que más determinan las diferencias estructurales entre las 50 economías analizadas, por encima de cualquier etiqueta convencional. Los cuatro componentes retenidos explican el 67.15% de la variabilidad total.

La clusterización jerárquica con el método de Ward identificó cuatro grupos con perfiles diferenciados. El C1 reúne economías de ingreso medio con tensiones macroeconómicas, incluyendo países europeos y latinoamericanos; el C2 agrupa economías emergentes de menor ingreso y base agrícola; el C3 concentra economías avanzadas industrializadas y exportadoras; y el C4 reúne pequeñas economías de altos ingresos y alta apertura. La composición regional de los clusters muestra que la geografía no determina la pertenencia: el C1 combina América y Europa, y el C2 combina América y Asia.

Un resultado relevante es que la división tradicional se rompe en varios casos. Grecia, Portugal, Croacia, Bulgaria y Lituania comparten cluster con economías latinoamericanas de ingreso medio, mientras que México y Malasia se agrupan con economías emergentes de menor ingreso y mayor peso agrícola. Al mismo tiempo, Singapur, Emiratos Árabes Unidos, Luxemburgo y Noruega forman un grupo propio de economías pequeñas, abiertas y de altos ingresos que no encaja en la dicotomía desarrollado/emergente.

En conclusión, la aplicación conjunta del ACP y la clusterización jerárquica demostró ser una herramienta útil para comparar economías con criterios objetivos. Los grupos que resultan de los datos reflejan similitudes y diferencias reales que de otro modo permanecerían ocultas, y ofrecen una visión más precisa del desarrollo económico comparado. Como recomendación, se plantea incorporar variables institucionales, ampliar el período de análisis y aplicar métodos de validación adicionales, con el fin de evaluar si los patrones identificados responden a condiciones estructurales permanentes o a situaciones coyunturales.

7. Bibliografía.

  • Banco Mundial. World Development Indicators. https://databank.worldbank.org/source/world-development-indicators
  • James, G., Witten, D., Hastie, T. y Tibshirani, R. (2021). An Introduction to Statistical Learning. Springer.
  • Kaiser, H. F. (1960). The application of electronic computers to factor analysis. Educational and Psychological Measurement, 20(1), 141-151.
  • Kassambara, A. y Mundt, F. factoextra: Extract and Visualize the Results of Multivariate Data Analyses. Paquete de R.
  • R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing.
  • Rousseeuw, P. J. (1987). Silhouettes: A graphical aid to the interpretation and validation of cluster analysis. Journal of Computational and Applied Mathematics, 20, 53-65.
  • Ward, J. H. (1963). Hierarchical grouping to optimize an objective function. Journal of the American Statistical Association, 58(301), 236-244.