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.1.tar.gz (147.6 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.1-py3-none-any.whl (156.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: enahopy-0.1.1.tar.gz
  • Upload date:
  • Size: 147.6 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.1.tar.gz
Algorithm Hash digest
SHA256 157c1836eb8cacf3ac1533bb6a9e1cf697080024258bfe8e026ed7e348846a8f
MD5 d4ca81cce7bf3a74ce96dbf9031696e8
BLAKE2b-256 4afe72c432877d8b6d763ed0a83a8c2c3c57bbab61fba0359a3f42bae781f730

See more details on using hashes here.

File details

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

File metadata

  • Download URL: enahopy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 156.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 63f468b6102c892abfcbf7ae6b7dc624c0a8e950608f93925c08e479cadcbd33
MD5 71a14aa08a5d18d6814169a5f7e880d7
BLAKE2b-256 81d587b2ccfa00dcfdffccc175ac08cfea1e75033f44363deb6af7509225ae6a

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