DP13210 Matlab, Python, Julia: What to Choose in Economics?
|Author(s):||Chase Coleman, Spencer Lyon, Lilia Maliar, Serguei Maliar|
|Publication Date:||September 2018|
|Keyword(s):||Dynamic programming, Global solution, High dimensionality, Julia, Large scale, Matlab, Nonlinear, Python, Toolkit, Value function iteration|
|JEL(s):||C6, C61, C63, C68, E31, E52|
|Programme Areas:||Monetary Economics and Fluctuations|
|Link to this Page:||cepr.org/active/publications/discussion_papers/dp.php?dpno=13210|
We perform a comparison of Matlab, Python and Julia as programming languages to be used for implementing global nonlinear solution techniques. We consider two popular applications: a neoclassical growth model and a new Keynesian model. The goal of our analysis is twofold: First, it is aimed at helping researchers in economics to choose the programming language that is best suited to their applications and, if needed, help them transit from one programming language to another. Second, our collections of routines can be viewed as a toolbox with a special emphasis on techniques for dealing with high dimensional economic problems. We provide the routines in the three languages for constructing random and quasi-random grids, low-cost monomial integration, various global solution methods, routines for checking the accuracy of the solutions, etc. Our global solution methods are not only accurate but also fast. Solving a new Keynesian model with eight state variables only takes a few seconds, even in the presence of active zero lower bound on nominal interest rates. This speed is important because it then allows the model to be solved repeatedly as one would require in order to do estimation.