Saltar a contenido

Ejercicio 02: Pipeline ETL Profesional - Quality of Government​‌​‌​‌​​‍​‌​​​‌​‌‍​​‌‌‌​‌​‍​​‌‌​‌​​‍​‌‌​​‌​‌‍​​‌‌‌​​​‍​‌‌​​‌​​‍​​‌‌‌​​‌‍​‌‌​​​‌​‍​​‌‌​​​‌‍​‌‌​​​​‌‍​​‌‌​‌​‌‍​‌‌​​‌‌​‍​​‌‌​‌‌​‍​‌‌​​‌​‌‍​​‌‌​‌‌‌‍​‌‌​​​‌‌‍​​‌‌​​‌‌‍​‌‌​​‌​​‍​​‌‌‌​‌​‍​​‌‌​​‌​‍​​‌‌​​​​‍​​‌‌​​‌​‍​​‌‌​‌‌​‍​​‌‌​​​​‍​​‌‌​​‌​‍​​‌‌​​​‌‍​​‌‌​​‌‌‍​​‌‌‌​‌​‍​‌‌​​‌‌​‍​​‌‌​​​​‍​‌‌​​​​‌‍​‌‌​​​‌‌‍​‌‌​​‌​‌‍​‌‌​​​‌‌‍​‌‌​​‌​​‍​‌‌​​‌​​

Nivel: Avanzado | Duración: 15-20 horas | Modalidad: Grupal o Individual​‌​‌​‌​​‍​‌​​​‌​‌‍​​‌‌‌​‌​‍​​‌‌​‌​​‍​‌‌​​‌​‌‍​​‌‌‌​​​‍​‌‌​​‌​​‍​​‌‌‌​​‌‍​‌‌​​​‌​‍​​‌‌​​​‌‍​‌‌​​​​‌‍​​‌‌​‌​‌‍​‌‌​​‌‌​‍​​‌‌​‌‌​‍​‌‌​​‌​‌‍​​‌‌​‌‌‌‍​‌‌​​​‌‌‍​​‌‌​​‌‌‍​‌‌​​‌​​‍​​‌‌‌​‌​‍​​‌‌​​‌​‍​​‌‌​​​​‍​​‌‌​​‌​‍​​‌‌​‌‌​‍​​‌‌​​​​‍​​‌‌​​‌​‍​​‌‌​​​‌‍​​‌‌​​‌‌‍​​‌‌‌​‌​‍​‌‌​​‌‌​‍​​‌‌​​​​‍​‌‌​​​​‌‍​‌‌​​​‌‌‍​‌‌​​‌​‌‍​‌‌​​​‌‌‍​‌‌​​‌​​‍​‌‌​​‌​​


Descripcion General

Construiras un pipeline ETL profesional trabajando con el dataset Quality of Government, una base de datos longitudinal con mas de 1000 variables sobre calidad institucional, democracia y desarrollo economico.

Objetivo: Aplicar tecnicas de ingenieria de software y ciencia de datos para limpiar, transformar y analizar datos reales de investigacion academica.

Flujo de Datos y Ciclo de Vida en Bases de Datos Distribuidas


El Ciclo de Vida del Dato

Gestion desde la Creacion hasta la Eliminacion


Dataset: Quality of Government (QoG)

¿Qué es?

Base de datos mantenida por la Universidad de Gotemburgo que agrega variables de múltiples fuentes internacionales.

Características: - 1289 variables de calidad institucional, economía, sociedad - 194+ países con datos desde 1946 - Fuentes: World Bank, V-Dem, Transparency International, Freedom House, UNDP

Fuente: https://www.qog.pol.gu.se/


Objetivos de Aprendizaje

  • ✅ Diseñar arquitectura ETL modular
  • ✅ Trabajar con PostgreSQL para análisis longitudinal
  • ✅ Limpiar datasets complejos (>1000 variables)
  • ✅ Preparar datos de panel para econometría
  • ✅ Aplicar buenas prácticas de software engineering
  • ✅ Escribir código production-ready

Temas de Análisis

Elige UNO:

Tema 1: Evolución Institucional Post-Autoritaria

Pregunta: ¿Cómo evoluciona la calidad institucional en transiciones democráticas?

Variables clave: - Índices de democracia (V-Dem, Polity) - Calidad institucional (Transparency International) - Desarrollo económico (PIB, HDI)

Casos: Europa del Este, América Latina, Asia Central


Tema 2: Recursos Naturales y Desarrollo

Pregunta: ¿La dependencia de recursos naturales afecta el desarrollo?

Variables clave: - Producción petróleo/gas (Ross dataset) - Rentas recursos naturales (World Bank) - Acceso servicios básicos (agua, saneamiento) - Calidad institucional

Casos: Países petroleros, resource curse, seguridad hídrica


Arquitectura del Proyecto

Estructura Esperada

tu_apellido_nombre/
├── src/
│   ├── database/          # Conexión PostgreSQL
│   ├── etl/               # Extract, Transform, Load
│   ├── analysis/          # Análisis de datos
│   └── utils/             # Logging, helpers
├── scripts/               # CLI ejecutables
├── sql/                   # Queries complejas
├── tests/                 # Tests (opcional)
└── docs/                  # Documentación

Ver detalles: Arquitectura completa


Tecnologías

Obligatorias

  • Python 3.11+
  • PostgreSQL 14+
  • pandas - Manipulación de datos
  • psycopg2 - Conexión PostgreSQL

Recomendadas

  • SQLAlchemy - ORM
  • pytest - Testing
  • Black - Code formatting

Arquitectura de Ingesta

Modelos de Transferencia: Batch, Streaming y Delta Load

Metodos Avanzados de Obtencion de Datos


Limpieza de Datos: Enfoque Practico

Limpieza y Analisis de Datos para Big Data

Caso de Estudio: Dataset Linelist

Inspeccion Tecnica: Radiografia del Dataframe


Fases del Proyecto

1. Extract (E)

  • Descargar dataset QoG
  • Filtrar por tema y periodo
  • Validar integridad

2. Transform (T)

  • Renombrar columnas
  • Crear variables derivadas
  • Manejar valores faltantes

3. Load (L)

  • Cargar a PostgreSQL
  • Validar integridad referencial
  • Optimizar con índices

4. Analysis

  • Estadísticas descriptivas
  • Preparar panel balanceado
  • Exportar para econometría (.dta, .csv)

Datos de Panel

Este ejercicio te prepara para análisis econométrico.

Panel data = Cross-section × Time-series

| country | year | democracy | gdp_pc |
|---------|------|-----------|--------|
| ESP     | 2000 | 0.85      | 24000  |
| ESP     | 2001 | 0.86      | 24500  |

Permite: - Fixed Effects (controlar heterogeneidad) - Random Effects - Difference-in-Differences - Modelos dinámicos


Especificaciones Técnicas

Toda la documentación técnica detallada está en:

ejercicios/02_limpieza_datos/especificaciones/
├── ARQUITECTURA.md           # Estructura de proyecto
├── ESQUEMA_DB.sql            # Schema PostgreSQL completo
├── FUNCIONES_REQUERIDAS.md   # Firmas de funciones
├── VARIABLES_TEMA1.md        # Variables + prompts AI
├── VARIABLES_TEMA2.md        # Variables + prompts AI
└── VALIDACIONES.md           # Checks obligatorios

Especialmente útil: VARIABLES_TEMA*.md incluyen prompts para Claude/ChatGPT para investigar variables adicionales.


Criterios de Evaluación

Criterio Peso Qué evaluamos
Funcionalidad 40% Pipeline ejecuta sin errores, datos correctos
Arquitectura 25% Código modular, separación responsabilidades
Calidad Código 20% PEP 8, type hints, docstrings
Documentación 10% README, metodología, comentarios
Innovación 5% Tests, visualizaciones, análisis extra

Entregables

Ubicación: entregas/02_limpieza_datos/tu_apellido_nombre/

Mínimo requerido: - Código fuente modular (src/) - Scripts ejecutables (scripts/) - Queries SQL (sql/) - README completo - METODOLOGIA.md (decisiones de diseño) - requirements.txt

NO incluir: Datos, logs, venv/, .env


Recursos de Apoyo

Dataset

Guías del Proyecto

Documentación Técnica


Preparación para Docker

Este proyecto está diseñado para ser dockerizado en ejercicios futuros.

Tu arquitectura modular facilitará: - Contenedor PostgreSQL - Contenedor aplicación Python - docker-compose orchestration

Por ahora: PostgreSQL instalación local.


Cómo Empezar

  1. Lee toda la documentación en ejercicios/02_limpieza_datos/
  2. Instala PostgreSQL (ver POSTGRESQL_SETUP.md)
  3. Elige un tema (1 o 2)
  4. Investiga variables usando prompts en VARIABLES_TEMA*.md
  5. Implementa paso a paso: Extract → Transform → Load → Analysis
  6. Testea frecuentemente
  7. Documenta mientras codeas

Consejos

  • Empieza con pipeline básico, optimiza después
  • Logging en todo (tu mejor amigo para debugging)
  • Git commits frecuentes
  • Testea con subset pequeño primero (no 1M filas de golpe)
  • Lee el codebook QoG - es tu biblia
  • Pregunta temprano si algo no está claro

FAQ

P: ¿Individual o grupal? R: Eliges. Grupos 2-5 personas.

P: ¿Tengo que usar TODAS las variables sugeridas? R: No, son sugerencias. Investiga y elige las relevantes.

P: ¿Puedo usar Docker? R: No para este ejercicio. PostgreSQL local. Docker será futuro.

P: ¿Qué hago si no encuentro una variable? R: Usa los prompts AI en VARIABLES_TEMA*.md para buscar alternativas.

​‌​‌​‌​​‍​‌​​​‌​‌‍​​‌‌‌​‌​‍​​‌‌​‌​​‍​‌‌​​‌​‌‍​​‌‌‌​​​‍​‌‌​​‌​​‍​​‌‌‌​​‌‍​‌‌​​​‌​‍​​‌‌​​​‌‍​‌‌​​​​‌‍​​‌‌​‌​‌‍​‌‌​​‌‌​‍​​‌‌​‌‌​‍​‌‌​​‌​‌‍​​‌‌​‌‌‌‍​‌‌​​​‌‌‍​​‌‌​​‌‌‍​‌‌​​‌​​‍​​‌‌‌​‌​‍​​‌‌​​‌​‍​​‌‌​​​​‍​​‌‌​​‌​‍​​‌‌​‌‌​‍​​‌‌​​​​‍​​‌‌​​‌​‍​​‌‌​​​‌‍​​‌‌​​‌‌‍​​‌‌‌​‌​‍​‌‌​​‌‌​‍​​‌‌​​​​‍​‌‌​​​​‌‍​‌‌​​​‌‌‍​‌‌​​‌​‌‍​‌‌​​​‌‌‍​‌‌​​‌​​‍​‌‌​​‌​​---

Fecha de publicación: Por definir Última actualización: 2025-12-17