Machine Learning · Análisis de Datos · Economía Aplicada
- Acerca del Proyecto
- Estructura del Repositorio
- Metodología
- Algoritmos Implementados
- Requisitos
- Cómo Ejecutar
- Resultados Principales
- Conclusiones
- Próximos Pasos
- Licencia
- Autor
Este proyecto aplica técnicas avanzadas de Machine Learning no supervisado para identificar perfiles diferenciados de hogares según sus privaciones multidimensionales, utilizando datos de la Encuesta de Calidad de Vida (ECV) 2024 de Colombia.
- Identificar perfiles diferenciados de hogares según sus privaciones multidimensionales
- Validar la consistencia de los clusters obtenidos con el Índice de Pobreza Multidimensional (IPM) oficial del DANE
- Caracterizar territorialmente los grupos identificados para entender patrones geográficos
- Generar insumos para el diseño de políticas públicas focalizadas y diferenciadas
El proyecto va más allá de la clasificación binaria tradicional (pobre/no pobre) del IPM oficial, buscando identificar matices y patrones intermedios que permitan comprender mejor la heterogeneidad de la pobreza en Colombia. Esto es fundamental para el diseño de intervenciones más efectivas y focalizadas.
Repositorio_Clustering/
│
├── clustering_pobreza.ipynb # Notebook principal con análisis completo
├── hogares_ML.csv # Base de datos de hogares (53,103 registros)
├── h # Archivo auxiliar
└── README.md # Este archivo
- clustering_pobreza.ipynb: Contiene el análisis completo desde la carga de datos hasta la visualización de resultados
- hogares_ML.csv: Dataset con 53,103 hogares y 30 variables incluyendo las 15 privaciones del IPM
- README.md: Documentación del proyecto
El análisis utiliza 17 variables agrupadas en tres categorías:
Variables de privación del IPM (15 variables):
Educación:
- Bajo logro educativo (LOGRO_2)
- Analfabetismo (ALFA_2)
- Inasistencia escolar (ASISTE_2)
- Rezago escolar (REZAGO_2)
- Barreras de acceso a servicios de cuidado infantil (A_INTEGRAL_2)
Trabajo:
- Trabajo infantil (TRABAJOINF_2)
- Desempleo de larga duración (DES_DURA_2)
- Empleo informal (EFORMAL_2)
Salud:
- Sin aseguramiento en salud (SEGURO_SALUD_2)
- Barreras de acceso a servicios de salud (SALUD_NEC_2)
Vivienda y servicios:
- Sin acceso a acueducto (ACUEDUCTO)
- Sin acceso a alcantarillado (ALCANTARILLADO)
- Pisos inadecuados (PISOS)
- Paredes inadecuadas (PAREDES)
- Hacinamiento crítico (HACINAMIENTO)
Variables territoriales (2 variables):
- Zona rural (ZONA_RURAL)
- Centro poblado (ZONA_CENTRO_POBLADO)
- Estandarización: Uso de StandardScaler y RobustScaler para normalizar variables
- Reducción dimensional: Aplicación de PCA para visualización
- Tratamiento de outliers: Manejo robusto de valores atípicos
El análisis sigue un enfoque sistemático:
- Selección del número óptimo de clusters: Uso del método del codo y análisis de silueta
- Aplicación de múltiples algoritmos para comparación y validación
- Evaluación cuantitativa: Métricas de Silhouette, Calinski-Harabasz y Davies-Bouldin
- Caracterización de perfiles: Análisis estadístico de cada cluster identificado
- Validación externa: Comparación con el IPM oficial del DANE
Algoritmo de partición que agrupa hogares minimizando la varianza intra-cluster.
Ventajas:
- Rápido y eficiente
- Resultados interpretables
- Bien documentado
Limitaciones:
- Asume clusters esféricos
- Sensible a outliers
Algoritmo basado en densidad que identifica clusters de forma arbitraria.
Ventajas:
- Detecta outliers automáticamente
- No requiere especificar número de clusters
- Encuentra formas complejas
Limitaciones:
- Sensible a parámetros (eps, min_samples)
- Menos eficiente en alta dimensionalidad
Construye una jerarquía de clusters mediante agregación sucesiva.
Ventajas:
- Produce dendrograma interpretable
- No requiere número de clusters a priori
- Robusto a diferentes formas
Limitaciones:
- Computacionalmente costoso
- No permite reasignación de puntos
Modelo probabilístico que asume distribuciones gaussianas superpuestas.
Ventajas:
- Proporciona probabilidades de pertenencia
- Flexible en formas de clusters
- Fundamento estadístico sólido
Limitaciones:
- Más complejo de interpretar
- Puede sobreajustar con pocos datos
- Python ≥ 3.7
- Jupyter Notebook o Google Colab
# Análisis de datos
import pandas as pd
import numpy as np
# Visualización
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
# Machine Learning
from sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering
from sklearn.mixture import GaussianMixture
from sklearn.preprocessing import StandardScaler, RobustScaler
from sklearn.decomposition import PCA
# Métricas de evaluación
from sklearn.metrics import (
silhouette_score,
calinski_harabasz_score,
davies_bouldin_score,
silhouette_samples
)pip install pandas numpy matplotlib seaborn scikit-learn scipy jupyter# 1. Clonar el repositorio
git clone https://github.com/jmeza-data/Repositorio_Clustering.git
cd Repositorio_Clustering
# 2. Instalar dependencias
pip install -r requirements.txt
# 3. Iniciar Jupyter Notebook
jupyter notebook
# 4. Abrir clustering_pobreza.ipynb y ejecutar las celdas secuencialmente- Abrir Google Colab
- File → Upload notebook → Seleccionar
clustering_pobreza.ipynb - Subir el archivo
hogares_ML.csva la sesión - Ejecutar todas las celdas: Runtime → Run all
El notebook está organizado en secciones secuenciales:
- Configuración inicial: Importación de librerías y configuración de visualización
- Carga de datos: Lectura del CSV y verificación de variables críticas
- Selección de variables: Preparación del conjunto de features para clustering
- Análisis exploratorio: Correlaciones y estadísticas descriptivas
- Determinación de K óptimo: Método del codo y análisis de silueta
- Aplicación de algoritmos: Ejecución de K-Means, DBSCAN, Jerárquico y GMM
- Evaluación y comparación: Métricas de calidad de clustering
- Caracterización de perfiles: Análisis estadístico de cada cluster
- Visualización espacial: Mapas tipo isoyetas con interpolación territorial
El análisis reveló la existencia de grupos diferenciados de hogares según sus patrones de privación, que van más allá de la clasificación binaria tradicional del IPM.
Los clusters muestran coherencia estadística con el Índice de Pobreza Multidimensional oficial del DANE, validando la robustez del análisis.
Se identificó una variabilidad geográfica significativa en la distribución de los perfiles de pobreza, con patrones diferenciados entre zonas urbanas, rurales y centros poblados.
El proyecto genera múltiples visualizaciones incluyendo:
- Gráfico del método del codo
- Análisis de silueta por cluster
- Dendrogramas jerárquicos
- Mapas tipo isoyetas con interpolación espacial
- Perfiles de privación por cluster
- Análisis de componentes principales (PCA)
-
Perfiles diferenciados: Se identificaron exitosamente grupos de hogares con patrones de privación característicos que permiten una comprensión más matizada de la pobreza multidimensional
-
Coherencia metodológica: Los clusters obtenidos muestran consistencia con el IPM oficial del DANE, validando tanto la metodología como los resultados
-
Dimensión territorial: Existe una heterogeneidad territorial significativa que debe ser considerada en el diseño de políticas públicas focalizadas
-
Variables críticas: El bajo logro educativo, analfabetismo y condiciones de vivienda emergieron como las variables más correlacionadas con el IPM
- Los perfiles identificados permiten diseñar intervenciones diferenciadas según las necesidades específicas de cada grupo
- La caracterización territorial facilita la focalización geográfica de programas sociales
- Los resultados proporcionan evidencia cuantitativa para la toma de decisiones en política social
-
Modelado predictivo: Utilizar los clusters identificados como variable categórica en modelos supervisados (XGBoost, Random Forest) para predecir trayectorias de pobreza
-
Validación cualitativa: Contrastar los perfiles identificados con expertos en política social y representantes de comunidades para validación externa
-
Análisis temporal: Incorporar datos de encuestas anteriores para estudiar la evolución de los perfiles de pobreza a lo largo del tiempo
-
Diseño de intervenciones: Desarrollar propuestas específicas de políticas públicas diferenciadas por perfil identificado
-
Ampliación territorial: Realizar análisis desagregados a nivel municipal para identificar patrones locales más específicos
Este proyecto es de uso académico libre. Desarrollado como parte del trabajo de investigación aplicada en el programa de Economía de la Universidad Nacional de Colombia.
Los microdatos utilizados provienen de la Encuesta de Calidad de Vida (ECV) 2024 del DANE y están sujetos a las políticas de uso establecidas por esta entidad.
Meza García, J. S. (2024). Clustering para Identificación de Perfiles de Pobreza
Multidimensional en Colombia. GitHub. https://github.com/jmeza-data/Repositorio_Clustering
Jhoan Sebastián Meza García
Estudiante de Economía
Universidad Nacional de Colombia
Áreas de investigación:
- Pobreza multidimensional y desigualdad
- Machine Learning aplicado a ciencias sociales
- Análisis de políticas públicas
- Econometría y estadística aplicada
Contacto:
📧 GitHub: jmeza-data
Machine Learning al servicio de la comprensión y el combate a la pobreza
Universidad Nacional de Colombia · 2024
