Skip to main content

Libreria Python para analisis de microdatos ENAHO del INEI Peru

Project description

ENAHOPY 🇵🇪

Python 3.8+ License: MIT

Librería integral para análisis de microdatos del INEI (Perú)

Herramienta completa y robusta para descargar, procesar, analizar y visualizar microdatos de encuestas nacionales peruanas como ENAHO. Diseñada específicamente para investigadores, instituciones públicas y profesionales del análisis social en Perú.

Características Principales

  • Descarga Automática: Descarga directa desde servidores oficiales del INEI
  • Multi-formato: Compatible con DTA (Stata), SAV (SPSS), CSV, Parquet
  • Validación Inteligente: Validación automática de columnas y mapeo de variables
  • Fusión de Módulos: Sistema avanzado para combinar módulos ENAHO
  • Análisis Geográfico: Integración con datos georreferenciados y ubigeos
  • ️Análisis de Valores Nulos: Detección de patrones y estrategias de imputación
  • Sistema de Cache: Optimización automática de descargas repetidas
  • Alto Rendimiento: Procesamiento paralelo para archivos grandes
  • Visualizaciones: Gráficos especializados para datos de encuestas sociales
  • Reportes Automáticos: Generación de reportes en múltiples formatos

📦 Instalación

Instalación básica

pip install enahopy

🎯 Uso Rápido

Descarga y lectura de datos ENAHO

from enahopy.loader import download_enaho_data, read_enaho_file

# Descargar módulo específico
download_enaho_data(year=2023, modules=['01'], data_dir='datos_enaho')

# Leer archivo descargado
df_hogar = read_enaho_file('datos_enaho/2023/Enaho01-2023-200.dta')
print(f"Registros cargados: {len(df_hogar):,}")

Fusión de módulos

from enahopy.merger import merge_enaho_modules

# Combinar módulo de hogar con personas
df_combined = merge_enaho_modules(
    modules=['01', '02'],  # Hogar + Personas
    year=2023,
    level='persona'
)

Análisis geográfico

from enahopy.merger import merge_with_geography

# Agregar información geográfica
df_geo = merge_with_geography(
    df_combined,
    nivel='departamento',
    incluir_ubigeo=True
)

Análisis de valores nulos

from enahopy.null_analysis import ENAHONullAnalyzer

# Análisis completo de missing values
analyzer = ENAHONullAnalyzer(complexity='advanced')
result = analyzer.analyze(df_combined)

# Visualizar patrones
analyzer.plot_missing_patterns(save_path='missing_analysis.png')

# Generar reporte
analyzer.export_report(result, 'reporte_nulos.html')

🏗️ Arquitectura del Paquete

enaho_py/
├── loader/           # Descarga y lectura de datos
│   ├── core/        # Configuración y excepciones
│   ├── io/          # Readers y downloaders
│   └── utils/       # Utilidades y shortcuts
├── merger/          # Fusión de módulos y geografía
│   ├── geographic/  # Manejo de datos geográficos
│   ├── modules/     # Fusión entre módulos ENAHO
│   └── strategies/  # Estrategias de fusión
└── null_analysis/   # Análisis de valores faltantes
    ├── core/       # Motor de análisis
    ├── patterns/   # Detección de patrones
    ├── imputation/ # Estrategias de imputación
    └── reports/    # Generación de reportes

📊 Casos de Uso Típicos

1. Análisis de Pobreza Nacional

from enaho_analyzer import ENAHOAnalyzer

# Inicializar analizador
enaho = ENAHOAnalyzer(year=2023)

# Cargar módulos necesarios
df = enaho.load_modules(['01', '02', '34'])  # Hogar, personas, ingresos

# Calcular indicadores de pobreza
poverty_stats = enaho.calculate_poverty_indicators(df)
print(poverty_stats.summary())

2. Análisis Regional Comparativo

# Análisis por departamentos
regional_analysis = enaho.analyze_by_region(
    df, 
    indicators=['poverty_rate', 'gini_coefficient'],
    level='departamento'
)

# Visualizar resultados
regional_analysis.plot_map(indicator='poverty_rate')

3. Tendencias Temporales

# Análisis multi-año
trends = enaho.analyze_trends(
    years=range(2019, 2024),
    modules=['01', '02'],
    indicators=['poverty', 'education', 'health']
)

trends.plot_evolution()

🔧 Configuración Avanzada

from enaho_analyzer.loader.core import ENAHOConfig

# Configuración personalizada
config = ENAHOConfig(
    cache_dir='mi_cache',
    max_workers=8,
    chunk_size=50000,
    enable_validation=True
)

# Usar configuración en análisis
enaho = ENAHOAnalyzer(config=config)

📚 Ejemplos Prácticos

El repositorio incluye notebooks con ejemplos completos:

🤝 Contribuir

¡Las contribuciones son bienvenidas! Ver CONTRIBUTING.md para detalles.

Proceso de desarrollo:

# Clonar repositorio
git clone https://github.com/elpapx/enahopy
cd enaho-analyzer

# Instalar en modo desarrollo
pip install -e .[dev]

# Ejecutar tests
pytest

# Verificar estilo de código
black .
flake8 .

📈 Roadmap

  • Soporte para ENDES (Encuesta Demográfica y de Salud Familiar)
  • Integración con ENAPRES (Encuesta Nacional de Programas Presupuestales Estratégicos)
  • API REST para servicios web
  • Dashboard interactivo con Streamlit
  • Integración con R a través de reticulate
  • Soporte para análisis longitudinal (paneles)

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver LICENSE para detalles.

📞 Soporte

🙏 Agradecimientos

  • Instituto Nacional de Estadística e Informática (INEI) por la disponibilización de microdatos
  • Comunidad científica peruana por feedback y contribuciones
  • Contribuidores del proyecto y usuarios beta

Desarrollado con ❤️ para la comunidad de investigación social en Perú

Made in Peru

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enahopy-0.1.0.tar.gz (146.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

enahopy-0.1.0-py3-none-any.whl (156.2 kB view details)

Uploaded Python 3

File details

Details for the file enahopy-0.1.0.tar.gz.

File metadata

  • Download URL: enahopy-0.1.0.tar.gz
  • Upload date:
  • Size: 146.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for enahopy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8ebc40b14284900b145f731e89ccb60f1ed445a5e7be8b5121bb896b5e5cad86
MD5 024fd20647746cc6f588de473f3f4e04
BLAKE2b-256 fdd5c417ef3fe935861fd0f549af72ca5005e1603d7d22632aa7d62cc3c7a7bf

See more details on using hashes here.

File details

Details for the file enahopy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: enahopy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 156.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for enahopy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0184d090678cc18bd136934baf26d3a7891c45f94e62aa7fb2653aa5401b638
MD5 1431019d2513b3ae91c51168dabcd456
BLAKE2b-256 dd5c3afff5a9c9c3145e1255b684002d5b727026e6484937e175ffea847365dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page