- Nada es Gratis - http://nadaesgratis.es -

Guía para aprender métodos cuantitativos en economía (III)

women

Continúo con esta tercera entrada mi guía para aprender métodos cuantitativos en economía, que tan bien fue recibida en sus dos primeras partes (la primera sobre matemáticas y la segunda sobre estadística y econometría). Hoy me toca tratar sobre métodos numéricos para economistas, como siempre con los parámetros de elección delimitados en las dos primeras entregas (objetivos, prioridades, tipos de libros, etc.) y a las que refiero al lector interesado.

Mientras que en mi plan original esta entrada iba a incluir tanto métodos numéricos como programación (y por tanto ser la última de la serie), la longitud de la misma me ha aconsejado, en el último momento, dividirla en tres partes, una sobre métodos numéricos y dos sobre programación y ordenadores, que espero salgan pronto. Esta serie comenzó siendo un proyecto de una breve entrada con unas recomendaciones someras sobre métodos cuantitativos en economía para responder a muchas peticiones en comentarios al blog y va camino de más de 10.000 palabras, que es la longitud de un artículo normal en economía.

Pero merece la pena dedicar suficiente tiempo a estas entradas restantes. Si mi razón original para esta serie fue la escasa preparación que los programas de grado de economía en España suministran en matemáticas y estadística, el problema es mucho más agudo en métodos numéricos y programación, que brillan por su casi completa ausencia en nuestros planes de estudio. En un país tan dado a los fallos de las juntas tóricas, mejor hacer las cosas bien y con calma.

Una breve motivación

Esta entrada requiere, en comparación las dos anteriores, de cierta justificación. Mientras que es obvio que los economistas necesitan matemáticas, estadística y econometría, es menos evidente que precisen conocimientos avanzados métodos numéricos y de programación, más allá, quizás, de cierta familiaridad con algún paquete estadístico básico. Nada más alejado de la realidad.

En un área tras otra de la economía moderna es preciso el recurso al ordenador para avanzar en nuestra comprensión de los fenómenos observados. En cuanto incorporamos a los modelos que empleamos en economía un cierto grado de complejidad y detalle, las soluciones analíticas a los mismos son imposibles. Esto no quiere decir que los modelos sencillos no cumplan un papel importante. Tales modelos nos sirven para entender con claridad los mecanismos que operan en ciertas circunstancias y nos permiten construir una aguda intuición sobre problemas importantes. Los investigadores en teoría y en micro aplicada juegan y siempre seguirán jugando un papel clave en nuestra profesión. Pero en cuanto queremos generalizar los modelos, por ejemplo, para convertirlos en laboratorios cuantitativos (¿cómo de importante es el mecanismo estudiado?, ¿qué capacidad tiene un modelo de explicar los datos observados?), la solución analítica de los mismos casi siempre se pierde.

Déjenme que les proponga un ejemplo para clarificar este argumento. Una mayoría de economistas probablemente estén de acuerdo con la idea de que un subsidio a la eficiencia energética incentiva a que los agentes incorporen medidas de ahorro (mejores aislamientos, termostatos inteligentes, etc.). Escribir un modelo donde esto es así es trivial: existe un coste de implementar la medida de ahorro (comprar el nuevo termostato) y un beneficio del mismo (gastamos menos en calefacción). Si rebajamos el coste de implementar la medida de ahorro (el gobierno paga 50 euros del coste de Nest), más hogares tomarán esta decisión. La pregunta interesante es cuántos hogares responderán al tratamiento. ¿Un 5%? ¿Un 10%? ¿Un 50%? La respuesta a esta pregunta es clave para determinar si el programa cumple o no con un criterio de coste-beneficio, escoger los parámetros del programa (¿debemos pagar 50 euros o 60?) o concluir si el mismo debería o no ser sustituido por otro programa con un coste presupuestario equivalente (como una subvención al reemplazo de ventanas antiguas). Casi con seguridad, en cuanto uno quiera enfrentarse con estas cuestiones, la necesidad de emplear modelos con ricos detalles (heterogeneidad de renta, de gustos por el uso energético, distribución geográfica, etc.) se convierta en imperiosa y con ellos el recurso al ordenador y a los métodos numéricos

Y en econometría, en cuanto un economista quiere dejar detrás los casos “pre-programados” por un paquete estadístico estándar, los conocimientos de programación y de métodos numéricos son igualmente irremplazables. ¿Cómo vamos a manejar sino grandes conjuntos de datos? ¿O determinar el comportamiento en muestras pequeñas de un estimador? ¿O implementar una modificación de un estimador ya conocido?

En consecuencia, desde la micro empírica a macro aplicada, de organización industrial a econometría teórica, la gran mayoría de todos los economistas jóvenes terminan empleando métodos numéricos y programación de manera sistemática.

Métodos numéricos en general

Los métodos numéricos consisten en el desarrollo e implementación de algoritmos (reglas definidas y claras de ejecución de operaciones matemáticas en un orden adecuado) que nos permiten la solución o aproximación a la solución de un problema de interés, como es la caracterización de un modelo económico o la determinación de un estimador econométrico. Aunque los métodos numéricos se ejecutan, en la práctica, en un ordenador (pues el mismo permite correr las instrucciones a grandes velocidades), en principio, los mismos se podrían hacer a mano. De hecho, durante los años 40 y 50 del siglo pasado, algunos de los métodos numéricos de primera generación se ejecutaban con pequeños ejércitos de operadoras (si, en aquellos tiempos eran casi siempre mujeres, como las fotografiadas abajo) con quizás solo la ayuda de rudimentarias calculadoras.

rocket
Estudiar métodos numéricos, por tanto, se parece más a aprender matemáticas que programación propiamente y por ello los cursos correspondientes suelen ser enseñados más frecuentemente, al menos en las universidades de habla inglesa, por los departamentos de matemáticas más que por los de informática. A la vez, como tales métodos son importantes en ingeniería, ciencias naturales y otros campos, las introducciones a métodos numéricos (también llamadas cálculo o análisis numérico) a nivel de grado suelen ser clases grandes y existen decenas de libros de texto para las mismas.

Burden

De entre todos estos libros, seleccionar uno u otro es más fruto de la conveniencia que de ningún criterio profundo. El material es relativamente homogéneo (interpolación, solución de ecuaciones, solución de autovalores, diferenciación e integración numérica, etc.) y bien conocido. Un libro popular (y que fue el que yo empleé en su día) es Numerical Analysis de Richard L. Burden, J. Douglas Faires y Annette M. Burden. Es un libro que se puede cubrir perfectamente a nivel de grado y, con cierto brío, incluso en un semestre. Pero, insisto, existen dos docenas de libros en la clase de equivalencia del Burden-Faires y varias clases completas en internet sobre el tema (no he seguido ninguna, así que no puedo recomendar una o la otra).

Afternotes

Al mismo tiempo, los libros de texto para cursos muy populares algunas veces tiran mucho por el medio de la carretera, para no irritar a nadie y maximizar su mercado, lo que les hace perder su capacidad de tener “opiniones” claras que ayuden al estudiante a desarrollar su propio criterio (¡aunque solo sea por oposición al mismo!). Esto es particularmente importante en métodos numéricos, donde los algoritmos no “funcionan” siempre: “funcionan” unas veces y otras no dependiendo de los detalles del problema. Saber identificar cuándo un método tiene o no sentido es una habilidad clave. En este respecto, yo aprendí muchísimo con Afternotes on Numerical Analysis de G. W. Stewart, un libro irreverente que te cuenta los “secretos del negocio” con gracia y claridad.

recipes

Una guía clásica de cómo implementar estos métodos en el ordenador (aunque volveré al tema de la programación más concreto en la siguiente entrada de esta secuencia) es la famosa serie de Numerical Recipes de William H. Press, Saul A. Teukolsky, William T. Vetterling y Brian P. Flannery. La página web de la serie incluye mucha información adicional, incluido el código de los algoritmos. Numerical Recipes, como su nombre indica, tiene un poco de “recetario”: introducciones breves y sencillas, que le sirven a uno para aprender las ideas básicas (yo empleo continuamente Numerical Recipes) pero a la vez sin mucha teoría o sutileza. Es un recurso imprescindible, pero hay que tener cuidado con el mismo.

theoretical

A nivel de master o de doctorado, la formación anterior se puede completar con libros generales más avanzados, como Theoretical Numerical Analysis: A Functional Analysis Framework (3rd ed.) de Kendall Atkinson y Weimin Han o con el “hermano mayor” de Afternotes, Afternotes Goes to Graduate School y que mantiene todas las virtudes de su versión más elemental.

Afternotes

Hay muchos libros sobre áreas más específicas. Entre las mismas, resaltaría antes que nada la solución de problemas de optimización, que están en el centro de casi todos los modelos en economía. La referencia básica es Numerical Optimization (2nd ed.) de Jorge Nocedal y Stephen Wright.

opti

Yo, en un par de trabajos, he empleado optimización por métodos genéticos (eran problemas de alta dimensionalidad y poca regularidad en la función objetivo) y siempre he quedado muy contento con los resultados. A Field Guide to Genetic Programming de Riccardo Poli, William B. Langdon y Nicholas Freitag McPhee es una introducción muy clarita que además se puede uno bajar gratuitamente de internet.

genetic

También es importante en ciertos campos de la economía saber algo mas profundo de métodos numéricos con matrices. Aquí la referencia obvia es Matrix Computations (4th ed.) de Gene H. Golub y Charles F. Van Loan.

matrix

Otras herramientas que se emplean en economía incluyen polinomios de Chebyshev o elementos finitos.

Para cerrar esta sección sin alargarme exceso (pues existen muchas referencias que tendrían su lógico espacio en la misma), querría mencionar una herramienta que a mi siempre me ha resultado particularmente beneficiosa: la teoría de la perturbación. La perturbación se emplea mucho en macro (lo que en macro llamamos con cierta impresición una linearización no es más que una perturbación de primer orden) y, escondida, en micro (cuando hacemos estática comparativa). Un libro completo es Introduction to Perturbation Methods (2nd ed.) de Mark H. Holmes.

pertur

Más avanzado, pero una referencia fantástica, es Advanced Mathematical Methods for Scientists and Engineers: Asymptotic Methods and Perturbation Theory de Carl M. Bender y Steven A. Orszag.

bender

Métodos numéricos en economía

Todos los libros anteriores son de métodos numéricos en general, sin centrarse de manera alguna en economía y las necesidades específicas de los economistas. Esto no es necesariamente malo: como he insistido en entradas anteriores, el conjunto central de conocimientos cuantitativos es el mismo en distintas áreas del conocimiento y siempre he sospechado de libros y clases llamadas “x para economistas” (¡aunque yo mismo de una!). Sin embargo, merece la pena ahora pasar a hablar sobre manuales que tratan temas con un enfoque más concreto en economía.

judd

El libro que ha dominado el mercado por mucho tiempo es Numerical Methods in Economics, de Kenneth Judd. Judd ha sido uno de los investigadores que más ha hecho por importar métodos numéricos de calidad en la economía y el libro es un resumen de su trabajo por mucho de este tiempo. Yo siempre sugiero a mis estudiantes de mi clase de segundo año de métodos numéricos para economistas que compren el libro de Judd. Es, sin duda, la mejor referencia para la clase.

A la vez el libro sufre de varios problemas. El primero es que la notación es, a menudo, compleja de seguir. Segundo, no totalmente independiente del problema anterior, la selección de ejemplos es un tanto peculiar. Tercero, el libro tiene ya 20 años y en muchas partes se nota. Por ejemplo, no tiene prácticamente nada sobre la solución de modelos con agentes heterogéneos.

miranda

Existen varias alternativas al libro de Judd, ninguna de ellas totalmente satisfactoria. Applied Computational Economics and Finance de Mario J. Miranda y Paul L. Fackler es muy sencillito y trata problemas en tiempo continúo, pero se deja muchas cosas fuera.

john

Sin ser totalmente un libro de métodos numéricos, Economic Dynamics: Theory and Computation de John Stachurski incluye muchos resultados que conviene tener a mano.

adda

Un caso similar, aunque un pelín más antiguo, es el Dynamic Economics: Quantitative Methods and Applications de Jerome Adda y Russell W. Cooper

En la entrada anterior, al hablar de econometría, ya mencioné varios libros sobre métodos de simulación que podrían también incluirse aquí. Remito al lector a esa entra anterior.

En micro (en sentido amplio: teoría, organización industrial, juegos) no se me ocurre ningún libro dedicado (en su totalidad o en parte) a métodos numéricos que merezca la pena resaltar (los libros de teoría de juegos algorítmica tratan de otros temas diferentes a los yo quiero cubrir en esta serie de entradas). Hay muchos artículos buenos desperdigados por revistas pero hasta ahora he preferido siempre centrarme en libros, con lo cual no voy a cambiar de tercio tan avanzado en mi narrativa. Quizás algún lector pueda tener alguna sugerencia al respecto que a mi se me escape en estos momentos.

quant

En finanzas, Implementing Models in Quantitative Finance: Methods and Cases de Gianluca Fusai y Andrea Roncoroni cubre los temas más típicos de ese campo. Sin embargo, ya que mi interés es más en economía que en finanzas o mercados, no comentaré los muchos libros existentes para gente que quiera convertirse en un quant.

marimon

En macroeconomía, hace ya unos cuantos años se organizó una escuela de verano en Florencia de la que salió Computational Methods for the Study of Dynamic Economies de Ramón Marimón y Andrew Scott. Varios de los capítulos del libro (linearización de Harald Uhlig, modelos con agentes heterogeneos de Victor Ríos Rull) siguen siendo introducciones muy útiles.

dynam

Otros libros en macro incluyen Dynamic General Equilibrium Modeling: Computational Methods and Applications (2nd ed.) de Burkhard Heer y Alfred Maussner y Economic Dynamics in Discrete Time de Jianjun Miao. Ambos libros cubren material que va más lejos de los métodos numéricos e incluyen un tratamiento más sustantivo de modelos. A mi no me emocionan en exceso y no los recomiendo en clase, pero algún lector puede encontrarles más utilidad que yo.

hand

Aprovechando el formato electrónico, Tom Sargent y John Stachurski tienen un curso en la red, Quantitative Economics, con muchísimo material que va evolucionando con el tiempo.

Hablando de macro, no creo pecar de excesivo apego a mi trabajo si resalto mi capítulo con Juan Rubio y Frank Schorfheide sobre solución y estimación de modelos de equilibrio general dinámico que acaba de salir en el Handbook of Macroeconomics. Con 199 páginas, prácticamente cualifica como un mini-libro.

Hand2

Finalmente, existe un Handbook of Computational Economics, que lleva publicados tres volúmenes. Como en el caso de todos los Handbooks, la heterogeneidad en la calidad de los mismos es alta. Algunos capítulos, como este de Shinichi Nishiyamaa y Kent Smetters sobre el análisis de política fiscal en modelos de generaciones solapadas es una gran introducción al campo. Otros (no voy a citar ninguno en particular para no pelearme tontamente con nadie) no valen para mucho.

Unas líneas de conclusión

Este es, quizás, un buen momento para reflexionar más general sobre el papel de los métodos computaciones en la economía. Es esta un área donde existe gente que viene de muchos orígenes. Algunos, como yo, somos economistas normales y corrientes que pensamos que los métodos numéricos son muy a menudo útiles y que, puestos a hacer cosas con ellos, mejor hacerlos bien. Otra gente viene del mundo de computación y matemáticas. Aunque soy el primero en bien venir a investigadores de otros campos, los mismos llegan con tradiciones y culturas académicas distintas a las de economía y algunas veces es importante entender estas distintas perspectivas. La diversidad de visiones sobre el mismo tema son cruciales en el avance del conocimiento pero pueden resultar un poco confusas para los estudiantes. Sirvan estas líneas, pues, únicamente, como advertencia a los lectores que no se pierdan si algunas vez ven cosas que no les terminan de cuadrar. Según vayan adquiriendo experiencia en el campo será mucho más fácil encajar todas las piezas del rompecabezas.

Finalmente, hay programas de investigación en computación en economía que, sinceramente, no pienso que vayan a ninguna parte. El que los lectores de esta entrada puede que se encuentren con mayor probabilidad es el de Agent-Based Computational Economics (lo pongo en inglés pues las traducciones en castellano varían de libro a libro y no quiero confundir). Después de 30 años de trabajo no hemos aprendido nada de substancia de este programa de investigación. Como consecuencia, su impacto en la profesión es prácticamente cero. La reciente crisis financiera, como ha ocurrido en otras ocasiones, ha sido aprovechada como excusa por más de uno para intentar resucitar programas de investigación un tanto atascados y los agent-based models no han sido una excepción. Además, suena bien (“inteligencia artificial”, “heterogeneidad”, etc.). Pero como de donde no hay no se puede sacar, estos proyectos son un tren a la nada.

Concluyo aquí por hoy prometiendo volver al tema de programación lo antes posible y, de una manera final, cerrar esta serie con dos entradas finales.

Pd: He actualizado un par de frases de esta entrada para reflejar que, a lo largo de la escritura de las entradas siguientes, la estructura de la serie ha cambiado. Ya que esta entrada tiene visión de permanencia, he considerado que tales cambios iban en el mejor interés de todos.