Más allá de la econometría: Creando Arte con Stata
Stata es ampliamente reconocido en el mundo de la gestión pública y la investigación académica como una herramienta robusta para el análisis estadístico, la gestión de bases de datos y la ejecución de modelos econométricos complejos. Sin embargo, su lenguaje de programación basado en comandos es sorprendentemente flexible. En este artículo, desglosaremos un script diseñado para romper la monotonía técnica y demostrar cómo podemos utilizar la lógica de Stata para crear arte visual, específicamente, una animación de un corazón renderizado.
Descarga el archivo y descomprímelo para poder abrir directamente en Stata 19 MP.
Desglosando el Código
La creación de este gráfico animado no es solo una curiosidad estética; es un ejercicio de programación paramétrica que utiliza funciones trigonométricas y bucles de control. Analicemos paso a paso cómo funciona el script:
1. Interacción con el usuario
display _n(2) "--- COLOCA EL NOMBRE AFORTUNADO ---"
global nombre_capturado = ""
capture noisily display _request(nombre_capturado)
Esta sección inicial utiliza el comando _request para capturar la entrada del usuario de manera dinámica. Al asignar este valor a una variable global ($nombre_capturado), permitimos que el nombre introducido sea impreso dentro del gráfico de manera automática en las siguientes etapas del script.
2. Generación de coordenadas paramétricas
clear
set obs 1000
gen t = (_n / _N) * 2 * _pi
gen x = 16 * sin(t)^3
gen y = 13 * cos(t) - 5 * cos(2*t) - 2 * cos(3*t) - cos(4*t)
Aquí reside el núcleo matemático. Utilizamos 1000 observaciones para trazar la curva. La variable t representa el ángulo que recorre el círculo, y las ecuaciones para x e y definen la forma geométrica de un corazón. Esta es una aplicación clásica de funciones trigonométricas adaptadas al entorno de Stata.
3. Renderizado animado con bucles
forvalues i = 1/15 {
local obs_actual = (`i' / 15) * 1000
twoway (area y x if _n <= `obs_actual', color(red) lcolor(red)), ...
sleep 50
}
La animación se logra mediante un bucle forvalues que divide el proceso de trazado en 15 etapas. En cada iteración, el comando twoway grafica solo una porción acumulativa de las observaciones (_n <= `obs_actual'). El comando name(grafico_animado, replace) asegura que la ventana gráfica se actualice en lugar de crear nuevas ventanas, mientras que sleep 50 (50 milisegundos) introduce la pausa necesaria para que el ojo humano perciba el efecto de “dibujo” en tiempo real.
Conclusión
Este ejercicio demuestra que, más allá de la estimación de modelos PEI o la gestión de instrumentos de planeamiento, Stata es un lenguaje de programación versátil. La capacidad de controlar la visualización de datos de esta manera abre puertas para la automatización de reportes más atractivos y la creación de interfaces de usuario personalizadas, demostrando que incluso en la gestión pública más técnica, siempre hay espacio para la creatividad.
Aprende mucho más con nuestro Curso de Stata
Domina Stata con nuestro Curso paso a paso desde cero.
(Ingresa cuando quieras)