New version of macrodemos

A new version of my Python macrodemos package is out! It’s a tool for teaching/learning macroeconomics and time series concepts. And thanks to @GoogleColab, now you don’t even need to know or have Python to run it! Just go to this website.
Once open, run the first two cells (to install macrodemos on the cloud), then run any demo you want:

  1. ARMA_demo to learn about ARMA models,
  2. Markov_demo to simulate Markov chains, or
  3. Solow_demo for the Solow-Swan growth model.

Just play around with any parameter and see all plots update to learn its effects. You can even download any plot you want, by clicking on the camera icon in any of the plots. BTW, @GoogleColab is completely free, you just need a Google account to use it.

Descargando datos del Banco Central de Costa Rica

He publicado mi paquete bccr para Python, con el cual se facilita la búsqueda y descarga de datos del Banco Central de Costa Rica.

Para instalarlo, solo necesita ejecutar

pip install bccr

desde una ventana de comando (preferiblemente de Anaconda).

Este paquete ofrece dos clases:

ServicioWeb: para descargar indicadores utilizando el servicio web del BCCR.

PaginaWeb: para descargar cuadros de la sección de indicadores del BCCR.

Una vez descargados, los datos pueden fácilmente ser exportados a un archivo en uno de varios formatos (CSV, Excel, Stata, por ejemplo) si desea analizarlos con otro programa distinto de Python.

En este video explico cómo utilizar el paquete.

Demostración de cómo usar el paquete bccr

Entendiendo el blockchain

Con la burbuja experimentada por Bitcoin en 2017 y su posterior desplome en 2018, se ha despertado mucho interés por su tecnología subyacente, el blockchain.

Sus defensores afirman que es una tecnología revolucionaria, con aplicaciones que van mucho más allá de facilitar pagos. Para desmitificar este concepto y facilitar las discusiones acerca de este tema, en este documento de trabajo explico de manera muy sencilla, con la ayuda de un programa de Python, qué es y cómo funciona el blockchain.

Python for Economists

I’ve translated my note Python para economistas from December 2017 to English. It is available as a pdf file here. You can also download it as a Jupyter notebook from my GitHub repository, in case you want to easily run the code.

This note encourages economists to learn Python, by showing examples of everyday tasks that are well too common to economists. You can read the note below.

If you want to replicate the first two examples, you will need to install the compecon package using  pip –which will be in your computer if you’ve installed Anaconda–, by typing:

pip install compecon

at a terminal point.

CompEcon in Python

Last couple of years I’ve been working from time to time on porting from Matlab to Python the CompEcon toolbox that comes with the textbook by Miranda and Fackler (2002).

A major difference in this implementation is that much of the code is object-oriented, providing classes to represent:

  • Interpolation bases: Chebyshev, Spline, and Linear
  • Dynamic programming models: with discrete and/or continuous state and action variables
  • Nonlinear problems
  • Optimization problems

Some other differences are:

  • The solution of dynamic models is returned as a pandas dataframe, as opposed to a collection of vectors and matrices.
  • Some additional functionality is included, most notably for Smolyak interpolation.
  • Basis objects are callable, so they can be used to interpolation function by “calling” the basis.

Although I haven’t finished this task, there is some progress; to see what is available so far, check these Jupyter notebooks to see which demos have already been replicated with the Python version.

I have shared the source code in Github for some time now, but to make it easy to final users to start using the toolbox right away, I have uploaded it to PyPI. Assuming you have pip on your computer –as will be the case if you’ve installed Anaconda–, you can install the latest release of compecon by typing:

pip install compecon

at a terminal point.

Más sobre Python

En mi post anterior hablé brevemente acerca del creciente uso de Python en economía y cómo conseguirlo. Siguiendo sugerencias de un amigo, he escrito una nota más amplia sobre este tema, en el cual presento ejemplos concretos de tareas que se pueden realizar en Python. Los ejemplos tratan de (1) la solución de modelos de Cournot por métodos numéricos (Newton y colocación),  (2) importación de datos de Internet, (3) estimación de modelos econométricos, y (4) documentos dinámicos (en los que los cuadros y gráficos presentados pueden actualizarse automáticamente).

Python para Economía

NOTA    5/Agosto/2018:  Este post motivó un artículo más extenso sobre este tema. Puede verse en español o en inglés.


Python es un lenguaje versátil y fácil de aprender —de hecho, es muy utilizado para enseñar cursos introductorios de informática.   Su sintaxis es muy clara, lo que facilita el desarrollo y mantenimiento del código.  A pesar de que aún no es tan popular como MATLAB entre economistas, es uno de los lenguajes más populares entre informáticos, por lo que existen múltiples facilidades para aprenderlo (libros, páginas de internet).  Es una excelente alternativa a MATLAB para cálculos científicos (gracias a paquetes como Numpy, Scipy, Matplotlib, y pandas) , en especial porque es completamente gratis.  En años recientes Python ha ganado popularidad entre economistas; por ejemplo, los siguientes libros usan Python para resolver modelos numéricos:

La mejor forma de conseguir Python es a través de Anaconda, una distribución gratuita que incluye más de 300 paquetes de gran utilidad en ciencias, matemática, ingeniería, y análisis de datos. Además de Python, Anaconda incluye herramientas como IPython (para ejecutar Python de manera interactiva), Jupyter (un editor que permite editar texto, código y resultados en un sólo archivo, excelente para documentar trabajos), Spyder (una interfaz gráfica para editar código, similar a la interfaz de MATLAB) y Conda (permite instalar y actualizar paquetes).  Vale aclarar que actualmente existen dos versiones de Python que no son enteramente compatibles entre sí, la 2.7 y la 3.6.  Yo recomiendo la versión 3.6.

Aunque Spyder facilita la edición de código, usuarios avanzados podrían preferir PyCharm, un excelente editor de Python cuya versión “Community” puede utilizarse gratuitamente. La versión “Professional” require de licencia, pero sus ventajas respecto a la “Community” (apoyo para editar páginas web, por ejemplo) no son tan relevantes para trabajos de economía computacional.