Tener conocimientos de programación no es algo usual en esta profesión; un análisisa partir del desafío de saber cuántos paquetes de figuritas comprar para completar un álbum.
DOMINGO 29 DE OCTUBRE DE 2017
PARA LA NACION
¿Cuántos paquetes de cinco figuritas habría que comprar para poder llenar un álbum de 200 figuritas?", preguntó hace poco en Twitter un conocido economista argentino. La gran mayoría de sus colegas intentó eludir la pregunta ("¿para qué querés juntar figuritas?"), cambiar el contexto ("te conviene ir al Parque Rivadavia a cambiarlas con otros coleccionistas"), o repreguntar ("¿hay difíciles?, ¿hay repetidas?"). Obviamente muchos se limitaron a un escueto "depende", la respuesta clásica del economista arrinconado contra las sogas. Pero muy pocos, si es que hubo alguno, aventuraron una respuesta.
Y claramente, la pregunta en cuestión depende de cierta contextualización para ser enfrentada en forma apropiada. El más simple de los contextos presupone que las figuritas se distribuyen aleatoriamente en los paquetes -de modo que no hay "figuritas difíciles"- y que la pregunta se refiere a cuántos paquetes se espera comprar, ya que la propia aleatoriedad de la situación impide dar una respuesta certera. En esta circunstancia (irrealista, por cierto) la repuesta correcta es 233 paquetes y hay dos maneras de obtenerla. Una, es a través de un cálculo matemático, sofisticado para el lego en cuestiones numéricas, pero simple (si bien desafiante) para quien posee una mínima formación universitaria en probabilidad.
De forma interesante, una vía alternativa es apelar a una simple simulación computacional, es decir, reproducir muchas veces en una computadora el azar de comprar figuritas y ver cuántos paquetes hizo falta comprar, en promedio, para llenar el álbum en cuestión, estrategia que demanda mínimos conocimientos de programación.
La respuesta apropiada a la versión simple del problema apareció de manos de un físico y de un estudiante doctoral de economía en el exterior. Ambos apelaron a la vía matemática. La vía computacional llegó unos minutos después, con un joven programador que, además, compartió en Twitter las pocas líneas de código que permiten computar la respuesta correcta con asombroso grado de precisión.
Este simple caso ilustra las enormes falencias que tienen los economistas para razonar algorítmicamente, algo que contrasta con la no poca cantidad de cursos de matemática que forman parte de la currícula de la profesión, y con la irrupción masiva del fenómeno de big data y de lo computacional en general, en los últimos años.
Son muy pocas las licenciaturas en economía que ofrecen una materia de programación o de otras habilidades computacionales. Y cuando existen, se limitan al software específico -generalmente especializado en estadística- o de planillas de cálculo. Por otro lado, la formación en álgebra y análisis matemático ocupa no menos de cinco materias de un total de 32. Y es sólo en una instancia de posgrado (en general doctoral y orientada a la investigación pura) que unos pocos economistas se involucran en actividades de programación, y lo hacen al ocuparse de áreas específicas (econometría o macroeconomía computacional, en particular).
En circunstancias obviamente más genéricas y relevantes que las del ejemplo de las figuritas, la incultura algorítmica deja muda a una profesión que se beneficiaría de una sana inversión en cuestiones computacionales. En el ejemplo mencionado, el primer paso consiste en precisar la cuestión, es decir, en reaccionar creativamente ante la indefinición de una pregunta genérica como la formulada. La realidad no hace preguntas como las de un examen universitario, sino que las plantea difusamente, y es trabajo del analista reformularlas sin que se pierda relevancia. Los que proveyeron una respuesta lo hicieron fijando un contexto (distribución aleatoria de figuritas en paquetes, inhabilidad de cambiar figuritas en un mercado, etcétera). Este proceso de contextualización es un primordial primer paso en la especificación de un problema, y el abecé de un proceso algorítmico.
Una elocuente muestra de la importancia de fijar contextos refiere a una clásica pregunta que hizo el físico Enrico Fermi a sus alumnos, en la primera mitad del siglo XX: "¿Cuántos afinadores de piano hay en Chicago?". Ciertamente, no existe ninguna forma indiscutible ni simple de abordar semejante pregunta. Fermi comienza suponiendo que en esa época, en Chicago: 1) había unos 5 millones de habitantes, 2) y 2 personas por hogar, 3) en donde 1 de cada 20 tenía un piano, 4) que ese piano era afinado 1 vez por año, y 5) que afinar un piano toma unas dos horas de trabajo. Con esos números, Fermi estima que había 125 afinadores de piano.
Lo importante de este ejemplo no es la respuesta, sino la explicitación de una serie de "subrrespuestas", que conducen al resultado final, dividiendo el problema en porciones que pueden ser escrutadas cada una por separado. Eso le permite al analista reconsiderar sus cálculos si luego dispone de más tiempo o recursos. El instinto de partir problemas grandes en pequeños es central a lo algorítmico y al razonamiento sistemático en general. En el ejemplo de las figuritas, el contexto simple implica suponer que están distribuidas al azar en los paquetes y que no hay un mercado para el intercambio, lo que permite abordar el problema con unas pocas líneas de código de programación. Esas líneas pueden ser simplemente alteradas para acomodar la existencia de "figuritas difíciles" o (con más esfuerzo) de intercambios.
A la luz de estas falencias, el prestigioso macroeconomista español Jesús Fernández Villaverde (de la Universidad de Pennsylvania) provocó hace poco una pequeña revolución en las redes sociales, al publicar en su recomendable blog "Nada es Gratis" una encendida defensa de la relevancia de las cuestiones computacionales en economía, a la que añade una completa guía sobre cómo introducirse en la temática. Así, compara las ventajas de lenguajes como C++, Java, R, Python o Matlab (entre muchos otros), que son moneda corriente para alguien con una mínima formación computacional y ajenos a la cultura de la mayoría de los economistas.
Los beneficios de adquirir conocimientos computacionales en economía son enormes. En primer lugar, permiten acceder rápidamente a una variedad de procedimientos numéricos que, a través de la programación, pueden ser fácilmente adaptados a circunstancias específicas. En segundo lugar, muchas veces una simple estrategia de simulación permite aproximar con asombrosa precisión problemas de difícil (cuando no imposible) abordaje, con herramientas matemáticas clásicas como el cálculo o el álgebra. Finalmente, la naturaleza secuencial de un algoritmo demanda explicitar y separar supuestos, datos y procedimientos, lo cual redunda en una elegancia de razonamiento que, a su vez, facilita la detección de errores y la reformulación de problemas. La lógica de la programación va mucho más allá del uso de un lenguaje específico y remite a formas de razonar atemporales.
El sitio web del proyecto Coursera (educación online) indica que el 50% de sus cursos más populares son sobre programación. Es aventurado pensar que el trabajo de los economistas será reemplazado por robots. Pero es cierto que un analista con nociones básicas de computación puede enfrentar eficazmente problemas muy sofisticados con simples herramientas algorítmicas que, lamentablemente, escapan a las habilidades actuales de una profesión cuantitativamente sofisticada como la economía, cuya formación en análisis matemático o en estadística está desbalanceada (cuando no obsoleta) en relación a las cuestiones computacionales.
El autor es profesor de la Universidad de San Andrés e Investigador Principal del Conicet
Comentarios
Publicar un comentario