Reproducibility package for: Análisis de Procedural Thresholds and Public Expenditure Allocation: Evidence of Bunching in Peruvian Public Procurement, 2019–2026 - Código, datos y configuración".
收藏资源简介:
Contexto y objetivos. Este paquete permite reproducir de forma independiente el análisis de bunching (concentración de masa) de las órdenes de contratación pública peruana justo por debajo del umbral procedimental de 8 UIT, que exime a las "compras menores" del procedimiento competitivo. El universo analítico son 25 196 792 órdenes registradas entre enero de 2019 y junio de 2026 (2026 comprende enero–junio). El objetivo es medir si el umbral organiza el comportamiento agregado de las compras, sin atribuir ilegalidad ni intención a ninguna orden individual. Metodología (scripts y orden de ejecución). El análisis parte del histograma agregado de montos (en UIT) y estima un contrafactual polinómico (GLM Poisson) con inferencia HAC. La carpeta 01_codigo contiene, en orden: 01_preparacion_datos.py (construcción del histograma desde los registros), 02_estimacion_principal.py (especificación principal), 03_sensibilidad.py (doce especificaciones), 04_placebos.py y 04b_estimaciones_anuales_metaanalisis.py (placebos, estimaciones anuales y metaanálisis), 05_analisis_institucional.py (heterogeneidad por categoría) y 06_figuras_tablas.py / 06b_figuras_ingles.py (figuras y tablas). Para una reproducción rápida sin los datos originales se incluye 00_reproduccion_desde_histograma.py. La validación cruzada fuera de Python está en reproducir_bunching_8UIT.R (R) y reproducir_bunching_8UIT.do (Stata). Contenido del paquete. 01_codigo (scripts de análisis y validación); 02_configuracion (parámetros, semillas de simulación y valores anuales de la UIT); 03_datos_procesados (histogramas agregados y resultados intermedios: modelo principal, sensibilidad, placebos, umbral móvil, episodio temporal 8–9–8, análisis institucional); 04_salidas (figuras en PDF y PNG, en español e inglés, y tablas); 05_documentacion (diccionario de variables, fuentes de datos, metodología de reproducibilidad y manifiesto SHA-256 de los 90 archivos originales). En la raíz: README.md / README_EN.md, LICENSE (CC BY 4.0), CITATION.cff, verificar.py y requirements.txt. Requisitos. Python ≥ 3.10 con las dependencias listadas en requirements.txt (principalmente numpy, pandas, matplotlib, statsmodels, scipy, openpyxl). La validación externa opcional usa R ≥ 4.0 (paquete sandwich) y Stata ≥ 14. Las versiones son mínimas, no fijadas; el análisis se verificó en dos entornos distintos con resultados idénticos y figuras idénticas byte a byte. Instrucciones mínimas de reproducción. Descomprima el paquete, instale las dependencias con pip install -r requirements.txt y ejecute un único comando: python verificar.py --figuras. Esto comprueba la huella SHA-256 de cada archivo, confirma que el histograma agregado suma el universo oficial, reestima la especificación principal y las doce de sensibilidad, y regenera las figuras comparándolas byte a byte con las incluidas. Un código de salida 0 indica que todas las verificaciones pasaron. No modifica ningún archivo original.



