Normalizacion de tabla_filtrada

Antes de realizaf el clustering, vamos a normalizar la tabla.

# 1. Calcular la media por país de variables numéricas y mantener info auxiliar
tabla_media <- tabla_filtrada %>%
  group_by(Pais) %>%
  summarise(
    ISO_code = first(ISO_code),
    Geographical_Particularity = first(`Geographical Particularity`),
    trade_usd = mean(trade_usd, na.rm = TRUE),
    `2_property_rights` = mean(`2_property_rights`, na.rm = TRUE),
    `4_trade` = mean(`4_trade`, na.rm = TRUE),
    `3_sound_money` = mean(`3_sound_money`, na.rm = TRUE),
    `5c_business_reg` = mean(`5c_business_reg`, na.rm = TRUE),
    .groups = "drop"
  )

# 2. Escalar variables numéricas (sin tocar columnas auxiliares)
variables_numericas <- tabla_media %>%
  select(trade_usd, `2_property_rights`, `4_trade`, `3_sound_money`, `5c_business_reg`)

variables_escaladas <- scale(variables_numericas)

# 3. Combinar con info auxiliar
tabla_escalada <- bind_cols(
  tabla_media %>% select(Pais, ISO_code, Geographical_Particularity),
  as_tibble(variables_escaladas)
)

Dendograma Paises

Para evitar que la correlacion se rompa por la diferencia comercial de paises que por sus condiciones tienen un valor de exportaciones alto. Vamos a realizar un dendograma y hacer la visualizacion del mapa de manera correcta sin distorsiones.

# 1. Preparar matriz numérica
datos_trade <- tabla_escalada %>%
  select(Pais, trade_usd) %>%
  drop_na()

# 2. Convertir a matriz
matriz_trade <- as.matrix(datos_trade$trade_usd)
rownames(matriz_trade) <- datos_trade$Pais

# 3. Calcular distancias (euclidianas por defecto)
distancias <- dist(matriz_trade)

# 4. Clustering jerárquico
hc <- hclust(distancias, method = "ward.D2")

# 5. Crear dendrograma
dend <- as.dendrogram(hc)

# 6. Colorear por clústeres (por ejemplo, k = 4)
k <- 6
dend_coloreado <- color_branches(dend, k = k)

# 7. Graficar
plot(dend_coloreado,
     main = paste("Dendrograma jerárquico por trade_usd (", k, "clústeres)"),
     ylab = "Distancia",
     cex = 0.7)