Primero que todo, quiero pedir disculpas por la falta de actualizaciones en el blog. Mis problemas de financiamiento continúan; actualmente estoy con dos trabajos a tiempo parcial además de la pesada carga del doctorado, y con las justas logro pagar el arriendo y la comida. Agradezco la paciencia de quienes leen este espacio.
Hace exactamente un año publicamos nuestro artículo sobre Open REDATAM junto a Lital Barkai. El camino hacia la publicación fue curioso: el artículo fue rechazado por muchas revistas que publican en castellano y que tienen un foco regional. La “paradoja” es que finalmente fue aceptado en Data & Policy de Cambridge University Press (Q1), sin foco regional, y cuyo lugar en los índices académicos es bastante mejor que las revistas que lo rechazaron inicialmente.
Durante este tiempo, hemos recibido muchos correos de usuarios de todo el mundo agradecidos por el software. A menudo nos llegan preguntas del tipo: “Tengo este censo de 1960 y no puedo exportar determinada tabla con el software original ni con Open REDATAM, ¿qué puedo hacer?”. Afortunadamente, hemos podido ayudar a la mayoría de los usuarios a resolver sus problemas y acceder a sus datos históricos.
Además, me alegra contarles que, al cumplirse este primer año, ha comenzado la revisión formal del software por parte de rOpenSci, lo cual ayudará a dar una garantía adicional de calidad y robustez a nuestro trabajo.
Resumen del artículo
Para quienes no han leído The REDATAM format and its challenges for data access and information creation in public policy, aquí va un resumen detallado de los argumentos centrales.
¿Qué es REDATAM y cuál es el problema?
REDATAM (Retrieval of Data for Small Areas by Microcomputer) es el formato estándar de la CEPAL para distribuir microdatos censales en América Latina. Países como Argentina, Chile, Colombia y México llevan décadas usándolo. El problema central es que REDATAM es un formato binario cerrado: no tiene una especificación oficial pública, sus archivos no se pueden abrir con un editor de texto como sí ocurre con un CSV, y el software oficial (REDATAM R+SP) no permite realizar análisis estadísticos más allá de tabulaciones simples. Esto significa que no es posible hacer regresiones, pruebas de hipótesis ni visualizaciones avanzadas directamente desde REDATAM.
Datos versus información
En el artículo hacemos una distinción conceptual importante: los datos son hechos crudos, mientras que la información es datos procesados que permiten tomar decisiones. REDATAM crea un cuello de botella en esa transformación. Los gobiernos ya pagaron el costo de producir los datos censales; usar formatos cerrados para distribuirlos impide que ONGs, grupos de incidencia y equipos técnicos los conviertan en información útil para el diseño de políticas públicas. El impacto económico de publicar en formatos abiertos sería marginal para los gobiernos, pero el beneficio para la participación ciudadana y la evidencia en política pública sería enorme.
Seguridad por oscuridad y riesgos de privacidad
Otro problema grave es que la falta de una especificación oficial equivale a lo que en seguridad informática se llama “seguridad por oscuridad”: confiar en el secreto del formato como mecanismo de protección. Esta práctica está ampliamente desaconsejada porque es solo cuestión de tiempo antes de que el formato sea revertido por ingeniería inversa, como ocurrió con el formato DVD. Más aún, al revisar el censo de Uruguay 2011 disponible en el sitio de la CEPAL, encontramos que el archivo venía etiquetado como “de uso interno del INE Uruguay”, lo que sugiere que datos que se supone son confidenciales pueden quedar expuestos por error. La solución correcta no es el secreto del formato, sino el cifrado y la anonimización de los datos individuales.
Incompatibilidad con herramientas modernas
REDATAM es incompatible con R, Python, Excel, SPSS y Stata. Para exportar variables hay que usar una interfaz gráfica de punto y clic que es lenta y no escala bien cuando se necesitan múltiples filtros o variables. Existe un lenguaje de consulta tipo SQL dentro del mismo software, pero tampoco permite pruebas estadísticas. Esto limita severamente el análisis cuantitativo que es hoy estándar en ciencias sociales, economía y ciencia política.
Open REDATAM como solución
Para resolver esto, desarrollamos Open REDATAM, una herramienta multiplataforma (Linux, Mac y Windows) escrita en C++ que convierte archivos REDATAM a CSV. Construimos sobre el trabajo previo de Pablo de Grande, que había creado un convertidor en C# para Windows, y lo reescribimos en C++ para lograr portabilidad total. Además, creamos paquetes de R y Python que permiten leer los datos directamente en esos entornos sin pasar por la línea de comandos, siguiendo los principios de Tidy Data. El software está bajo licencia Apache, que permite uso comercial y derivados siempre que se mantenga la atribución de autoría.
Validación con IPUMS
Para verificar que nuestra herramienta extrae los datos correctamente, comparamos nuestros resultados con los del servicio IPUMS International, que provee microdatos censales armonizados para múltiples países. Lo hicimos para Bolivia (2012), Chile (2017), República Dominicana (2002), Ecuador (2010), El Salvador (2007), Perú (2017) y Uruguay (2011). Las diferencias observadas son explicables: IPUMS trabaja con una muestra del 10% y aplica procesos de limpieza y armonización propios, mientras que Open REDATAM lee los datos tal como los distribuye cada gobierno. Los resultados son consistentes y dan confianza en la corrección del software.
Preservación de datos históricos
Otro problema identificado en el artículo es la preservación a largo plazo. El instalador del censo argentino de 2001, por ejemplo, ya no funciona en Windows 10 pero sí en Ubuntu 22.04 con Wine. Si los formatos cerrados y el software propietario van quedando obsoletos, los datos censales históricos podrían volverse inaccesibles. Esto refuerza la necesidad de especificaciones abiertas estandarizadas, como las que existen para XLSX (ISO 29500), que permiten a múltiples herramientas leer el mismo formato sin depender de un único proveedor de software.
Ejemplo de uso
Para un censo dado, como el Censo chileno 2017, basta con ejecutar:
library(redatam)
chl17 <- read_redatam("input-dir/CPV2017-16.dicx")Esto retorna una lista de data frames, uno por cada nivel jerárquico del censo (región, provincia, comuna, hogar, persona, etc.), que luego pueden combinarse con dplyr para obtener tablas agregadas:
Siguiendo esta idea, en el caso particular del censo chileno 2017, podríamos obtener el número de personas por región con el siguiente código:
library(dplyr)
chl17$zonas %>%
mutate(region = substr(as.character(geocodigo), 1, 2)) %>%
select(region, geocodigo, zonaloc_ref_id) %>%
inner_join(
chl17$viviendas %>%
group_by(zonaloc_ref_id, cant_per) %>%
summarise(cant_per = sum(cant_per, na.rm = TRUE), .groups = "drop"),
by = "zonaloc_ref_id"
) %>%
group_by(region) %>%
summarise(cant_per = sum(cant_per, na.rm = TRUE), .groups = "drop")Para una explicación más detallada, incluyendo cómo cruzar niveles y calcular indicadores como hacinamiento, pueden consultar la viñeta oficial del paquete.
Actualizaciones técnicas
Tanto antes como después de la publicación del artículo, el software ha sido mejorado en varios aspectos. El más significativo ha sido ampliar el soporte para censos históricos que se encuentran en poder de universidades y archivos institucionales y que no siempre son fáciles de encontrar en internet. Este ha sido un proceso iterativo de prueba y error: a medida que los usuarios nos envían archivos con variantes antiguas del formato, identificamos los patrones que difieren de los censos más recientes y extendemos el código para cubrirlos, sin alterar la lógica central ya verificada. El resultado es que hoy Open REDATAM puede leer una gama de archivos considerablemente más amplia que en su versión inicial.
Además, junto con los usuarios hemos organizado una colección de microdatos censales convertidos a CSV que ahora está disponible públicamente en github.com/pachadotdev/redatam-microdata. El repositorio incluye censos de varios países y años que los propios usuarios nos fueron enviando, y que ahora pueden descargarse directamente sin necesidad de instalar ningún software adicional. Esperamos que esto reduzca aún más la barrera de entrada para investigadores y equipos técnicos con recursos limitados.
Finalmente, en el aspecto técnico más inmediato, migré la interfaz de C++ del paquete de R de cpp11 a cpp4r (pueden leer más sobre esta herramienta aquí). Esta decisión se basó principalmente en mejorar la portabilidad del código y facilitar su mantención a largo plazo.
Vale mencionar también que recientemente se publicó en CRAN el paquete redatamx, que sigue un enfoque diferente al nuestro: en lugar de reimplementar la lectura del formato, actúa como interfaz hacia la aplicación oficial REDATAM, que debe estar instalada previamente. Esto lo hace disponible oficialmente para Ubuntu, pero en la práctica he tenido dificultades para hacerlo funcionar: no corre en mi laptop con Manjaro y tampoco he logrado que funcione desde máquinas virtuales con Ubuntu. En contraste, Open REDATAM no depende de ninguna instalación externa y funciona en cualquier plataforma donde esté disponible un compilador de C++.
Actualizaciones institucionales
En cuanto a la interfaz institucional, hemos intentado en múltiples ocasiones establecer contacto con la CEPAL —el organismo de Naciones Unidas que desarrolla y mantiene REDATAM— para explorar posibles vías de colaboración o integración de Open REDATAM en el trabajo oficial de la organización. Lamentablemente, a la fecha no hemos recibido respuesta a ninguno de esos mensajes. No obstante, dejamos constancia pública de que la invitación está abierta: si alguien en la CEPAL o en un instituto nacional de estadística desea contactarnos para discutir cómo podríamos colaborar, estaremos encantados de hacerlo.
Si te ha gustado este artículo, por favor considera donar para apoyar mi trabajo de código abierto: https://buymeacoffee.com/pacha.