Investigación · tesis de maestría radicada
Un límite, no una ausencia.
El diseño descarta que la inclusión financiera mueva el crecimiento más de 0,55 puntos por desviación del índice.
19 fuentes públicas, 1.123 municipios, un índice con sus pesos a la vista y 160 especificaciones estimadas. Construido con Python, dbt y DuckDB; cada cifra de esta página sale del archivo de resultados que el repositorio recalcula y prueba.
Tesis de Maestría en Economía · Pontificia Universidad Javeriana, 2026 · dirigida por Gabriel Penagos Londoño
- 19fuentes públicas con manifiesto y sha256
Superintendencia Financiera, DANE, MinTIC, MEN y el Marco Geoestadístico
- 2018–2025de panel anual sin un solo valor repetido
264 filas departamentales y 231 crecimientos, ninguno duplicado
- 1.123municipios en el panel, 1.121 con polígono
2018–2024 · 7.861 filas municipales
- 160especificaciones estimadas, cada una con su N y su p
con efectos de tiempo, 5 de 80 salen significativas; sin ellos, 50 de 80
Atlas
El índice sobre el mapa, por departamento y por municipio
Tres vistas de los mismos datos. Plano, con las métricas alrededor; relieve, para levantar un departamento y verlo aparte; y municipios, para bajar a las 1.123 unidades. Al fijar un departamento se puede descender a sus municipios desde el propio mapa, y elegir una región acerca el encuadre a esa selección dejando los vecinos sangrando por el borde.
Cargando el mapa y sus series…
- Un territorio sin color no vale cero: es un territorio del que ninguna entidad vigilada reportó operaciones ese año.
- La altura de los bloques es constante y no codifica nada. Una altura que dependiera del valor haría que las unidades de adelante taparan a las de atrás, y el dato de una unidad no debe depender de dónde cae en el mapa.
- El archipiélago de San Andrés va como ficha fuera de escala: está a 700 km del continente y mide 26 km², de modo que dentro del encuadre encogía el mapa una quinta parte para pintar un punto.
- Dos de los 1.123 municipios del panel no tienen polígono en el Marco Geoestadístico 2024: aparecen en el ranking y en las cifras, pero no en el mapa.
Resumen
- Datos en los que se puede confiar. Cada descarga queda con su huella sha256; los ceros que son faltantes se tratan como faltantes; el empalme de las dos tablas de la Superintendencia está medido (diferencia mediana 0,02 %).
- Un método elegido por evidencia, no por costumbre. El PCA se descartó porque la adecuación muestral dio 0,317 y 0,407; el denominador que fabricaba correlación (−0,23) se detectó y se corrigió (−0,13).
- Un resultado que dice cuánto sabe. β = +0,0038 (p = 0,54) con efectos de entidad y tiempo: descarta efectos mayores a 0,55 pp por desviación identificante del índice (unos 2,0 pp por desviación bruta) y dice abiertamente que no puede ver los menores, ni siquiera ±0,50 pp.
Leer el resumen completo
¿La inclusión financiera predice el crecimiento económico de los departamentos colombianos una vez descontadas las tendencias nacionales que los mueven a todos a la vez? Para responderla, el proyecto descarga diecinueve fuentes públicas con un manifiesto verificable, resuelve cada serie al código municipal DIVIPOLA, las modela en un esquema estrella sobre dbt y DuckDB con la vintage de cada descarga en el manifiesto, y construye un índice de inclusión financiera por dimensiones con pesos congelados y publicados por variable. Encima van dos paneles anuales, departamental y municipal, un atlas interactivo y una batería econométrica de efectos fijos de dos vías, diagnósticos de dependencia transversal y espacial, diseños que no dependen de la exogeneidad del índice (CCE, exposición inicial, estudio de eventos con tendencias previas), y una inferencia hecha para 33 clústeres. La respuesta se publica con su especificación, su N, sus pruebas y su potencia, sea cual sea el signo, y es un límite y no una ausencia: con bootstrap salvaje agrupado, el diseño descarta efectos mayores a unos 0,55 puntos porcentuales de crecimiento anual por desviación identificante del índice, y no puede hablar de nada menor.
Lo que esto demuestra
Cuatro capacidades, cada una con su prueba en esta página
Un warehouse dimensional con pruebas de datos
Esquema estrella en dbt sobre DuckDB, con pruebas que fallan si el empalme de las dos tablas o los totales por departamento se rompen.
Econometría de panel con inferencia honesta
Pocos clústeres, bootstrap salvaje, placebo por permutación, potencia y equivalencia: el resultado dice cuánto sabe y cuánto no.
Cartografía interactiva en la web
El atlas de esta página: d3 y TopoJSON, tres vistas y los 1.123 municipios, con la ausencia de dato pintada como ausencia.
Ingeniería reproducible
uv con archivo de bloqueo, integración continua que vuelve a calcular los resultados publicados y 25 decisiones escritas antes del código.
Datos
Diecinueve fuentes públicas, con la huella de cada descarga
Adquisición con manifiesto
Un descargador propio pagina las API de datos abiertos, verifica el conteo contra la fuente, tipa cada columna con los metadatos del portal y guarda Parquet particionado por año. Cada descarga deja fecha de la fuente, filas, bytes y sha256 en un manifiesto versionado.
Claves geográficas resueltas
Las tablas de la Superintendencia no declaran el código DIVIPOLA, pero lo llevan implícito en la columna de renglón. Resolverlo da cobertura del 100 % en los 34 cortes trimestrales y evita el cruce por nombre, que falla con acentos y alias.
Warehouse dimensional con dbt
Esquema estrella con hechos por vintage sobre DuckDB: dimensiones de departamento, municipio, periodo y las 98 variables de la Superintendencia con su regla de anualización; la inclusión en formato largo por bloque de producto.
El empalme, medido
La tabla vigente sustituye a la anterior en 2021Q1, y ese trimestre existe en las dos: es una prueba natural del empalme. La diferencia mediana por departamento es del 0,02 % y el peor caso llega al 1,8 %; una prueba de dbt falla si esos umbrales se rompen.
Frecuencia anual, dos paneles
El PIB subnacional es anual: ningún valor anual se repite en cuatro trimestres. El panel departamental cubre 2018 a 2025 con 231 observaciones de crecimiento y ninguna repetida; el municipal, 2018 a 2024 sobre el valor agregado municipal del DANE.
Un cero no es un dato
Los ceros de la Superintendencia y del Ministerio de Educación son ausencias, no valores: fuera del bloque de producto de cada fila desaparecen por construcción. En el mapa, un territorio sin color es un territorio del que nadie reportó, y eso no es lo mismo que cero.
El índice
Se mide el supuesto antes de elegir el método
Ocho variables, tres dimensiones
Acceso, uso y profundidad, cada una con sus variables normalizadas por adultos o por producto y estandarizadas en la ventana de calibración. Dieciocho candidatas quedaron fuera, cada una con su motivo escrito.
El PCA se descartó midiéndolo
La medida de adecuación muestral da 0,317 en uso y 0,407 en profundidad, por debajo del umbral de 0,5 que hace falta para factorizar; acceso tiene una sola variable. Forzarlo produce pesos implícitos con el signo contrario: una variable que debería sumar entra restando.
El denominador, rezagado
Los montos se normalizan por el producto del año anterior, no el del mismo año: ese PIB también está en la dependiente, y dividir por él fabrica correlación. Un índice placebo con los numeradores congelados, que solo se mueve por su denominador, «predice» el crecimiento con β = −0,23 si el producto es el del mismo año; con el rezagado el sesgo baja a −0,13 (p = 0,03) pero no desaparece, y con un denominador fijo de 2018 se va (+0,13, p = 0,44). Por eso el índice de denominador fijo se publica al lado, como coprincipal.
Pesos iguales, congelados y publicados
Dentro de cada dimensión los pesos son iguales, se fijan en la ventana 2018–2019 y no se vuelven a tocar. Los pesos implícitos por variable se publican siempre, y ninguno puede ser negativo.
Sensibilidad a la vista
El PCA y el índice de distancia de Sarma se calculan igual y se publican como alternativas, con la correlación de rangos entre las tres versiones. Ninguna se esconde.
Cero es un promedio, no una ausencia
El índice está estandarizado contra el promedio de los departamentos en la ventana de calibración. Un valor de 2 son dos desviaciones por encima de aquel promedio, no «el doble de inclusión».
Resultados
Con efectos de entidad y tiempo, el efecto queda acotado
El diseño descarta efectos mayores a 0,55 puntos porcentuales de crecimiento anual por desviación identificante del índice (unos 2,0 pp por desviación bruta), y no puede hablar de nada menor.
β = +0,0038 · p = 0,54
Treinta y tres departamentos, 2019 a 2025, 228 observaciones. Con efectos fijos de entidad y de tiempo, el índice compuesto no mueve el crecimiento del PIB real per cápita de forma que se pueda distinguir de cero: el bootstrap salvaje por clúster da p = 0,55 y el placebo por permutación p = 0,51. Un nulo sin su potencia no distingue «no hay efecto» de «este diseño no lo vería», así que se mide: el efecto mínimo detectable al 80 % es 0,60 pp por desviación estándar identificante, y la prueba de equivalencia descarta efectos mayores a ±0,50 pp (p = 0,07) pero no consigue descartar ±0,25 pp (p = 0,29). Sin efectos de tiempo el mismo coeficiente vale +0,027 con p < 0,001: esa distancia es lo que valía la tendencia nacional, y los efectos de dos vías se llevan el 92 % de la varianza del índice.
| Especificación | β | EE | p | N |
|---|---|---|---|---|
| Efectos de entidad y tiempo (base) | +0,0038 | 0,0062 | 0,54 | 228 |
| Base con errores de Driscoll-Kraay | +0,0038 | 0,0034 | 0,27 | 228 |
| Solo efectos de entidad | +0,0272 | 0,0050 | < 0,001 | 228 |
| En cambios del índice | −0,0045 | 0,0043 | 0,30 | 226 |
| CCE, cargas heterogéneas por departamento | +0,0017 | 0,0087 | 0,84 | 228 |
| SLX, rezago espacial del índice | +0,0074 | 0,0071 | 0,30 | 221 |
| Exposición inicial: índice 2018 × adopción nacional | +0,0166 | 0,0059 | 0,005 | 223 |
- efecto mínimo detectable al 80 %
- 0,60 pp
- por desviación estándar identificante del índice; con el bootstrap la equivalencia descarta ±1,0 pp y no ±0,50 pp (p = 0,07)
- p del bootstrap salvaje por clúster
- 0,55
- 999 réplicas de Rademacher con la nula impuesta sobre 33 departamentos, studentizadas con el error agrupado
- p del placebo por permutación
- 0,51
- 499 reasignaciones de la trayectoria completa de cada departamento; barajar dentro del año estrecharía la nube de forma artificial
- CD de Pesaran sobre los residuos
- 2,40
- dependencia transversal débil pero presente (p = 0,016); por eso Driscoll-Kraay acompaña al clúster
- 1Las tres dimensiones por separado, la especificación en cambios, el CCE, el SLX y los dos índices alternativos coinciden: ninguno se distingue de cero. Dejando fuera un departamento cada vez, el coeficiente queda entre +0,000 y +0,008 y nunca es significativo.
- 2La curva de especificación estima 160 variantes: sin efectos de tiempo, 50 de 80 salen significativas; con efectos de tiempo, 5 de 80. Lo que separa a las dos mitades es la tendencia nacional, no la inclusión.
- 3El único diseño con señal es el de exposición inicial (+0,017, p = 0,005), que sobrevive a su propio bootstrap y a su placebo. No sobrevive al contraste que importa: la urbanización inicial produce por sí sola una pendiente igual de significativa (+0,050, p = 0,008), y con las dos exposiciones en la misma ecuación el índice cae a p = 0,10. Tampoco sobrevive a la corrección de Holm sobre los doce contrastes publicados. Es una pendiente diferencial de los departamentos más urbanos, no un efecto del índice, y se publica así.
- 4El estudio de eventos alrededor de 2020 no puede contrastar tendencias previas —la dependiente empieza en 2019 y el choque es 2020— y se publica con esa limitación escrita.
- 5La capa de proyección 2026–2028 se publica como escenario, no como pronóstico superior: en el backtest reduce un 38,6 % el error medio del pronóstico ingenuo, pero le gana en 3 de 8 años, sin 2021 la ganancia es de +8,3 %, y agrupada por año de origen la diferencia no es significativa (p = 0,29).
Decisiones
Cada decisión de valor está escrita antes del código
Las decisiones que cambian un resultado —la frecuencia, el modelo de datos, el método del índice, el diseño econométrico— van a un registro de decisión con sus alternativas, su costo y cómo revertirla. Las constantes viven en un solo sitio y ninguna cifra publicada existe sin la prueba que la sostiene.
Frecuencia anual, dos paneles
El producto subnacional es anual y ningún valor anual se reparte en cuatro trimestres. La desagregación temporal queda como anexo, con sus advertencias.
Esquema estrella con procedencia
Claves naturales, la huella sha256 de cada descarga en el manifiesto y un empalme de esquema medido en el trimestre que existe en las dos fuentes.
Índice por dimensiones con supuesto medido
Adecuación muestral antes de factorizar; pesos iguales, congelados y publicados; alternativas visibles.
Diseño econométrico
Efectos fijos de dos vías, diagnósticos medidos y no supuestos, diseños contra la exogeneidad con sus tendencias previas, bootstrap salvaje studentizado con el error agrupado porque 33 clústeres no bastan para la asintótica, corrección de Holm y la potencia publicada junto al nulo.
Datos derivados con la licencia de la fuente
Lo que sale de la Superintendencia, MinTIC y el Ministerio de Educación se publica CC BY-SA 4.0, con atribución.
Reproducir
Cinco comandos reproducen el proyecto
uv syncDependencias exactas desde el archivo de bloqueo. Nada se instala fuera de él.
uv run iif acquire allDescarga las diecinueve fuentes, verifica el conteo contra cada API y escribe el manifiesto con sha256.
make checkRuff, 242 pruebas de Python, los modelos y las pruebas de dbt sobre DuckDB, y el render del sitio. Sale en cero o no hay commit.
uv run iif econCorre la batería econométrica completa en menos de medio minuto y escribe el archivo del que sale cada cifra de esta página.
uv run iif atlasGenera la geometría y las series que consume este mapa, dentro del presupuesto de 3 MB que fija el contrato.
El motor local y de integración continua es DuckDB. BigQuery queda como objetivo alternativo con tope de costo por consulta, y Snowflake como demostración posterior; nada del proyecto depende de que ninguno de los dos siga vivo.
Qué hay y qué llega
El proyecto se publica por fases
- 1Publicado: las diecinueve fuentes con manifiesto, el warehouse completo en dbt, el índice por dimensiones con sus pesos, los dos paneles anuales, el atlas, la batería econométrica con su potencia y su curva de especificación, y la proyección 2026–2028 como escenario, también sobre el mapa de esta página.
- 2Después: el anexo de desagregación temporal (Chow-Lin, Denton y Fernández con el indicador trimestral del DANE) y el manuscrito.
- 3Todo el código, los datos derivados y las decisiones están en el repositorio, versionados.
Según quién lee
- ¿Contratas? Descarga el CV
- ¿Investigas? Cita el proyecto
- ¿Necesitas esto para tu organización? Escríbeme
Deja de elegir entre el que entiende el negocio y el que construye los datos.
Si tu equipo necesita a alguien que lea el P&L y construya el pipeline que lo alimenta, hablemos esta semana. Respondo en menos de un día hábil.
Videollamada de 20 minutos: eliges el horario en tu zona y el enlace te llega por correo.