Introducción

En este informe, llevaremos a cabo un análisis de componentes principales con el objetivo de explorar la estructura interna de un conjunto de datos que contiene información sobre diferentes aspectos socioeconómicos de diversos departamentos. Nuestro interés radica en comprender la variabilidad entre los departamentos y cómo se agrupan en función de estas características.

Además del análisis de componentes principales, utilizaremos técnicas de clustering para identificar grupos naturales de departamentos en función de sus perfiles socioeconómicos. El clustering nos permitirá agrupar los departamentos en conjuntos homogéneos, lo que facilitará la interpretación de los resultados y nos ayudará a identificar posibles patrones o tendencias en los datos.

A lo largo de este informe, exploraremos cada paso del análisis, desde la preparación de los datos y el cálculo de las componentes principales, hasta la asignación de clusters y la visualización de los resultados. Nuestro objetivo final es proporcionar una comprensión más profunda de la estructura subyacente de los datos y generar insights que puedan ser útiles para la toma de decisiones en el contexto socioeconómico.

Librerías

Procedemos a instalar y cargar las librerias que posteriormente usaremos para el desarrollo de este analisis

library(readxl)
library(psych)
library(factoextra)
library(ggplot2)
library(dplyr)
library(tibble)
library(ggfortify)
library(corrplot)

Análisis exploratorio y reducción de dimensionalidad mediante PCA y clustering

En esta sección de código, se lleva a cabo un análisis exploratorio de los datos utilizando técnicas de análisis de componentes principales (PCA) y clustering. Los datos se cargan desde un archivo Excel y se preprocesan convirtiendo las columnas no numéricas en numéricas y eliminando aquellas con varianza cero.

Luego, se calcula la matriz de correlación y se visualizan como un mapa de calor. A continuación, se realiza el PCA para reducir la dimensionalidad de los datos y se visualiza la varianza explicada por cada componente principal.

Posteriormente, se eliminan las filas con valores perdidos y se generan colores para representar los diferentes departamentos en un gráfico de dispersión de las dos primeras componentes principales. Finalmente, se lleva a cabo el clustering utilizando el algoritmo k-means y se visualizan los resultados mediante un gráfico que muestra los grupos identificados en el espacio de las dos primeras componentes principales.

# Realizamos un análisis exploratorio de los datos
summary(data)
# Correlación solo para variables numéricas
data_numeric <- select_if(data, is.numeric)
correlation_matrix <- cor(data_numeric)
# Graficamos la matriz de correlación
corrplot(correlation_matrix, type = "upper", method = "color")
# Realizamos un análisis de componentes principales (PCA)
pca_result <- prcomp(data_numeric, scale = TRUE)

# Resumen del PCA
summary(pca_result)
## Importance of components:
##                           PC1    PC2    PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.6627 1.4391 1.2120 0.90490 0.74149 0.57625 0.55083
## Proportion of Variance 0.5454 0.1593 0.1130 0.06299 0.04229 0.02554 0.02334
## Cumulative Proportion  0.5454 0.7047 0.8177 0.88069 0.92298 0.94853 0.97187
##                            PC8    PC9    PC10    PC11   PC12    PC13
## Standard deviation     0.39876 0.3038 0.25296 0.15268 0.1399 0.08714
## Proportion of Variance 0.01223 0.0071 0.00492 0.00179 0.0015 0.00058
## Cumulative Proportion  0.98410 0.9912 0.99612 0.99791 0.9994 1.00000
# Visualización de la varianza explicada por cada componente principal
fviz_eig(pca_result, addlabels = TRUE)

# Eliminar filas con valores NA en los datos
data <- na.omit(data)

# Generar una paleta de colores basada en el número de departamentos
num_departamentos <- nlevels(factor(rownames(data)))
colores <- rainbow(num_departamentos)

# Graficamos los datos en el espacio de las dos primeras componentes principales
fviz_pca_ind(pca_result, geom = "point", habillage = rownames(data), 
             palette = colores, 
             ggtheme = theme_minimal())

Análisis de clustering sobre puntuaciones de PCA mediante k-means

Esta sección de código se enfoca en realizar un análisis de clustering sobre las puntuaciones de las componentes principales obtenidas mediante PCA. Primero, se calculan las puntuaciones de las componentes principales para cada observación. Luego, se aplica el algoritmo de k-means para agrupar las observaciones en los clusters. Después, se asignan los clusters resultantes a cada observación y se presenta un resumen de la distribución de observaciones en cada cluster. Finalmente, se visualizan los clusters en el espacio de las dos primeras componentes principales.

# Obtener las puntuaciones de las componentes principales para cada departamento
pca_scores <- as.data.frame(predict(pca_result))

# Realizar el análisis de cluster
kmeans_clusters <- kmeans(pca_scores, centers = 4, nstart = 25)

# Asignar los clusters a cada departamento
data_with_clusters <- cbind(data, Cluster = kmeans_clusters$cluster)

# Resumen de los clusters
table(data_with_clusters$Cluster)
## 
##  1  2  3  4 
## 10  3 19  1
# Visualización de los clusters en el espacio de las dos primeras componentes principales
fviz_cluster(kmeans_clusters, data = pca_scores,
             ellipse.type = "convex", geom = "point", 
             ggtheme = theme_minimal())

Visualización de centroides de clusters en el espacio de componentes principales

Esta sección de código se encarga de calcular los centroides de cada cluster generado por el algoritmo de k-means y etiquetarlos con nombres de cluster respectivamente. Luego, se visualizan las características globales de los grupos de departamentos sugeridos en el espacio de las dos primeras componentes principales, donde cada punto representa un centroide de cluster.

# Calcular los centroides de cada cluster
centroids <- aggregate(pca_scores, by = list(Cluster = kmeans_clusters$cluster), FUN = mean)

# Etiquetar los centroides con los nombres de los clusters
centroid_labels <- paste("Cluster", 1:4)

# Visualización de las características globales de los grupos de departamentos sugeridos
ggplot(centroids, aes(PC1, PC2, color = factor(Cluster), label = centroid_labels)) +
  geom_text(size = 4) +
  geom_point(size = 5, shape = 17) +
  labs(title = "Características globales de los grupos de departamentos",
       x = "Componente Principal 1",
       y = "Componente Principal 2",
       color = "Cluster") +
  theme_minimal()

Conclusiones

El análisis de la estructura económica de los departamentos de Colombia revela una notable diversidad en las actividades económicas que sustentan su Producto Interno Bruto per cápita (PIBpc). Al observar los datos proporcionados, se destaca la presencia de sectores como la agricultura, ganadería, caza, silvicultura y pesca, la explotación de minas y canteras, las industrias manufactureras, entre otros, que contribuyen de manera significativa al panorama económico de cada región.

Departamentos como Antioquia, Bogotá D.C., Valle del Cauca y Santander muestran una estructura económica más diversificada, con una contribución considerable de varios sectores como la agricultura, las industrias manufactureras, el comercio, los servicios financieros, entre otros. Por otro lado, departamentos como Meta y Casanare muestran una fuerte dependencia en sectores como la explotación de minas y canteras, lo que refleja la importancia de la industria extractiva en su economía.

Este análisis subraya la variabilidad regional en la estructura económica de Colombia, con diferentes departamentos mostrando fortalezas en sectores específicos. Además, resalta la importancia de considerar esta diversidad al diseñar políticas y estrategias de desarrollo económico a nivel regional, con el objetivo de aprovechar los recursos y potenciales de cada área para impulsar un crecimiento sostenible y equitativo.

Algunas conclusiones destacables pueden ser las siguientes:

Diversificación económica: Se observa una diversidad en la estructura económica de los diferentes departamentos. Algunos tienen una mayor dependencia en sectores específicos, mientras que otros muestran una distribución más equilibrada entre diferentes actividades económicas.

Importancia de la agricultura: La agricultura parece ser un sector importante en la mayoría de los departamentos, como se evidencia por las contribuciones significativas en algunos casos.

Variabilidad regional: Los datos sugieren una variabilidad significativa entre regiones en términos de la contribución de cada sector al PIBpc. Por ejemplo, departamentos con una economía más desarrollada pueden tener una mayor participación de sectores como la industria manufacturera o los servicios financieros.

Potencial para el desarrollo económico: La identificación de patrones en la estructura económica de los departamentos puede proporcionar información útil para la formulación de políticas y estrategias de desarrollo económico a nivel regional. Por ejemplo, los departamentos con una baja diversificación económica podrían beneficiarse de iniciativas destinadas a promover la diversificación y el crecimiento de otros sectores.