Saltar a contenido

📡 Análisis Computacional de Geopolítica: El "Gran Juego" Post-Soviético

Un enfoque de Big Data para entender la economía y seguridad en Asia Central.

Daniel Alexis Mendoza Corne

👤 Daniel Alexis Mendoza Corne

Bandera Perú Ingeniería Informática y de Sistemas | LinkedIn

Docs


📌 Resumen Ejecutivo

Este proyecto aplica técnicas de Big Data e Ingeniería de Software para resolver una pregunta fundamental de las Ciencias Políticas:

"¿Son los factores de 'Poder Duro' (Gasto Militar) o de 'Poder Blando' (Democracia, Control de Corrupción) los que determinan el desarrollo económico en la periferia post-soviética?"

A través de un pipeline automatizado, se procesaron décadas de datos históricos de países clave del "Gran Juego" (Afganistán, Mongolia, Cáucaso) para modelar matemáticamente sus trayectorias de desarrollo.

🛠️ Tech Stack

Python Docker Spark Machine Learning Econometrics Streamlit


🎥 Demo: El Gran Juego en Acción

Demo: El Gran Juego en Acción

Tablero interactivo con Globo 3D, Análisis Comparativo y Simulador de IA.


🗺️ Estructura de Navegación

🧭 Sección 📝 Descripción
🚀 Guía de Trabajo Paso a paso para completar el proyecto. Instrucciones detalladas.
🐳 Infraestructura Explicación técnica de Docker, servicios y redes.
💻 Catálogo de Código Documentación técnica de scripts Python (src/) y Pipeline ETL.
📊 Resultados Informe final con gráficos, modelos y hallazgos del "Gran Juego".

🏗️ Arquitectura del Sistema

El proyecto implementa un flujo de datos moderno y contenerizado:

graph TD
    %% Estilos
    classDef source fill:#f9f,stroke:#333,stroke-width:2px;
    classDef script fill:#bbf,stroke:#333,stroke-width:2px,color:black;
    classDef data fill:#dfd,stroke:#333,stroke-width:2px,color:black;
    classDef output fill:#fd9,stroke:#333,stroke-width:2px,color:black,stroke-dasharray: 5 5;

    subgraph INGESTA ["📡 Ingesta de Datos"]
        A["☁️ Internet / Repo QoG"]:::source
        Script1{{"🐍 download_data.py"}}:::script
    end

    subgraph PROCESAMIENTO ["⚙️ Procesamiento & Análisis"]
        Script2{{"⚡ pipeline.py"}}:::script
        Script3{{"🧠 analysis.py"}}:::script
        Script5{{"📉 econometric_analysis.py"}}:::script
    end

    subgraph ALMACENAMIENTO ["💾 Almacenamiento"]
        B[("📄 Raw CSV")]:::data
        C[("📦 Clean Parquet")]:::data
    end

    subgraph VISUALIZACION ["📊 Consumo & UI"]
        Script4{{"🚀 app_streamlit.py"}}:::script
        D["📈 Gráficos Estáticos .png"]:::output
        E["🖥️ Dashboard Interactivo"]:::output
        F["📄 Reporte Hausman .txt"]:::output
    end

    %% Relaciones
    A --> Script1
    Script1 --> B
    B --> Script2
    Script2 --> C
    C --> Script3
    C --> Script4
    C --> Script5
    Script3 --> D
    Script4 --> E
    Script5 --> F
  • Infraestructura: Docker Compose orquestando JupyterLab, Spark Master/Worker.
  • ETL: PySpark para limpieza y transformación (.parquet).
  • Analítica:
    • Machine Learning: Random Forest (Spark MLlib) para Feature Importance.
    • Econometría: Modelos de Datos de Panel (Fixed Effects vs Random Effects) y Test de Hausman.
  • Frontend: Dashboard interactivo en Streamlit para exploración de datos.

🔍 Hallazgos Principales

1. Inteligencia Artificial (Random Forest)

El modelo identificó que, descontando la salud básica (Esperanza de Vida), los factores de Seguridad y Estabilidad del Régimen tienen un peso predictivo superior a la mera democratización.

2. Validación Econométrica (Test de Hausman)

Se aplicó un Test de Hausman comparando modelos de Efectos Fijos vs Aleatorios. - Resultado: Se prefirió el modelo de Efectos Fijos (\(P < 0.05\)). - Interpretación: Las características únicas e invariables de cada país ("El estilo uzbeko", "La geografía afgana") son determinantes estructurales del éxito o fracaso económico, confirmando la hipótesis de heterogeneidad regional.


🚀 Instrucciones de Despliegue

# 1. Levantar la infraestructura
docker compose up -d

# 2. Descargar e Ingestar Datos
docker exec jupyter_lab python /home/jovyan/work/src/download_data.py

# 3. Ejecutar Pipeline ETL (Raw -> Parquet)
docker exec jupyter_lab python /home/jovyan/work/src/pipeline.py

# 4. Entrenar Modelo de Machine Learning (Spark)
docker exec jupyter_lab spark-submit /home/jovyan/work/src/analysis.py

# 5. Ejecutar Análisis Econométrico (Hausman)
docker exec jupyter_lab python /home/jovyan/work/src/econometric_analysis.py

# 6. Lanzar Dashboard Web (http://localhost:8501)
# Opción A: Versión Clásica
docker exec -d jupyter_lab streamlit run /home/jovyan/work/src/app_streamlit.py

# Opción B: Versión PRO (3D Command Center) 🌟
docker exec -d jupyter_lab streamlit run /home/jovyan/work/src/app_streamlit_pro.py

📂 Estructura del Repositorio

├── 01_README.md                # Portada del proyecto (Este archivo)
├── 02_INFRAESTRUCTURA.md       # Documentación técnica de Docker
├── 03_RESULTADOS.md            # Informe detallado de hallazgos
├── 04_REFLEXION_IA.md          # Bitácora de co-creación con IA
├── 05_EXPLICACION_CODIGO.md    # Catálogo de scripts
├── 06_RESPUESTAS.md            # Preguntas de defensa
├── docker-compose.yml          # Orquestación
├── src/                        # Código Fuente Python
│   ├── pipeline.py             # Lógica ETL Big Data
│   ├── analysis.py             # ML Engine
│   ├── econometric_analysis.py # Stats Engine
│   └── app_streamlit.py        # Web App
└── data/                       # Lakehouse (Raw + Processed)

Última actualización corrección visual: v3.0 (Markdown Table)