Guía para aprender métodos cuantitativos en economía (III) Jesús Fernández-Villaverde

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


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 dos partes, una sobre métodos numéricos y otra sobre programación, que espero salga 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 las 10.000 palabras, que es la longitud de un artículo normal en economía.
Pero merece la pena dedicar suficiente tiempo a estas dos entradas. 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.

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.
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. PressSaul 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 PoliWilliam 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
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.
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.
http://nadaesgratis.es/fernandez-villaverde/guia-para-aprender-metodos-cuantitativos-en-economia-iii
comentarios
En economia centenares de nosotros escribimos modelos con agentes y los simulamos. No tenemos nada en contra de emplear el ordenador: el curso que doy yo en el doctorado se llama Metodos Computacionales en Economia y consisten en explicar a los estudiantes como se especifica un modelo con agentes varios en un ordenador y como el mismo se simula. Incluso empleo, el primer dia, la expresion “economia artificial”. Y practicamente la totalidad de mis papers (como los de otros centenares de economistas) son de modelos que no se pueden solucionar analiticamente y tengo (como mis centenares de compañeros) que emplear el ordenador para solucionarlos, simularlos y estimarlos.
Pero no te fies de mi. Lee lo que Robert Lucas, el macroeconomista mas influyente de los ultimos 50 años, escribio en 1980:
“One of the functions of theoretical economics is to provide fully articulated, artificial economic systems that can serve as laboratories in which policies that would be prohibitively expensive to experiment with in actual economies can be tested out at much lower cost...Our task, as I see it…is to write a FORTRAN program that will accept specific economic policy rules as ‘input’ and will generate as ‘output’ statistics describing the operating characteristics of time series we care about, which are predicted to result from these policies”
(si, en 1980 la gente empleaba Fortran;)
El problema es el tipo de modelo que se simula. Como profesion existe un consenso (yo creo justificado, pero quizas erroneo) que el tipo de modelo que nos gusta y las simulaciones del mismo se construye alrededor de una serie de reglas. Los modelos comunes en ACE no siguen esas reglas. Y por tanto no han sido aceptados como muy interesantes por la gran mayoria de la profesion. Que la gente publique de vez en cuando en Science o Nature cosas de este estilo me importa poco: el editor normalmente no es un economista profesional y lo unico que demuestra al aceptar estos papers es su falta de criterio.
Asi que no confundamos al lector. El problema NO es emplear el ordenador, el problema NO es la simulacion, el problema NO es la caracterizacion de distribuciones ergodicas por medio de metodos numericos, el problema NO es construir economias artificales como laboratorios de investigacion. El problema es QUE modelo nos gusta. Y el tipico modelo de ACE ("si la casilla de la izquiera es roja, yo me cambio de color") a la inmensa mayoria de los economistas nos deja frios. Ni hemos aprendido nada de ellos ni es muy probable que aprendamos mucho en el futuro.
De igual manera no confundamos al lector con una supuesta diferencia entre economia matematica y economia aplicada a este respecto. Abre cualquier paper moderno en macro, en organizacion industrial, etc. No son todos (sea el paper mas teorico o mas aplicado) modelos dinamicos o estocasticos? El ejemplo de un clasicazo, con mas de 2200 citas (hace poco hubo una celebracion sobre el):
No es esto economia matematica? No es dinamico? No es estocastico?
Y si quieres hablar de modelos de economia matematica pura y dura donde el componente espacial es clave, mira la pagina de Estaban Rossi-Hansberg:
Y modelos matematicos con agentes heterogeneos:
que me he estado leyendo esta mañana por otro motivo.
Y como estos ejemplos, si tuviese tiempo y ganas, se pueden poner 2000 mas.
Entonces de que estamos hablando con la tabla de la pagina 48 del paper excepto de una caricatura sin base alguna en la realidad?
En una cosa tienes razon: al final son los lectores los que tienen que evaluar los meritos relativos de cada posicion y no quiero alargar mas esta cadena de comentarios, ya que se desvia del punto principal, que es una guia de metodos numericos.

No hay comentarios:

  How to conduct monetary policies. The ECB in the past, present and future Highlights We study the evolving operating procedures used by th...