Open zlqs1985 opened 8 years ago
@zlqs1985 It's been on our radar and it's a great suggestion. Thanks for reminding us.
Is it generic enough that it should go in the library for people to import and plug into their model? Or would it be best to simply illustrate the idea in a few examples, and put them in a notebook or on quant-econ.net?
@zlqs1985
Have you seen this C++ library implementing EGM? It already has Python (as well as MATLAB and Java) bindings. Working out how to apply the techniques in this library to solve economics applications has been on my TODO list for some time.
Assuming that this library would suite the community's needs for EGM, then I perhaps we could develop a list of three canonical economics use-cases that could be coded up demonstrating the use of this library and write up a notebook.
Thoughts?
Personally I think that something like this would work well in connection with dolo.
Apart from the discrete dynamic programming routines, QuantEcon currently doesn't provide a way for users to describe a generic model upon which algorithms like this can be applied.
cc @albop
@spencerlyon2 Agreed. It would be useful to have a nice language for defining generic models. Such a language would be useful outside of economics as many economics models, at their core, are either dynamical systems or systems of functional equations.
@davidrpugh: ... recent work in dolo goes precisely in that direction and tries to entangle the particular specification of a given model type from generic constructs for equations and other objects (the language)
About the method, I thought @zlqs1985 was mentioning Endogenous Grid Method, as denominated by Chris Carroll. The original method, is 1d only and uses quite specific assumptions (like pre- and post-states) which is why it is not in dolo yet. It certainly deserves a place in the notebook or the lectures though. I know there are some generalizations but haven't looked at them closely. It would be an interesting thing to do though.
@albop I agree that simple implementations of EGM, like the Chris Carroll algorithm, would be useful teaching examples in notebooks. I came across the C++ library I linked to at ZICE a few years ago. Ken Judd mentioned it when we discussed endogenous grid point methods. For research code, I think that we should try to leverage existing libraries that implement EGM-like methods.
@davidrpugh As for the library, it seems indeed quite advanced and contains many different things. I surely would be very keen to see how easy/efficient it is compared to other options. One peculiarity about this package is that I couldn't find the list of authors. I also wonder if the license is still BSD-compatible with the adhoc parts they have added to it.
@davidrpugh . Hi, David, thanks for your recommendation , actually, I have collect some exiting available code on the internet, like JFV‘s fortran code. But, when I thought I had learned enough from the code itself and wanted to exercute it , it failed to compile. The reason is I hadn't implemented the IMSL lib. I think it's ugly (without no respect for JFV, it's great that he can share his code). Meanwhile , I only have several classes on C++ many years ago and almost totally forget it. By the way.I think the beauty of Julia for me is , there is finally a hope that you can only master one major language to implement quantitative macro computation. There are many phD students like me are far away from those Top phD programs and still want to pick up the cutting edge technique, Julia can be life-saver.
@spencerlyon2 , I 'll check dolo, thanks for recommendation.
@zlqs1985 @davidrpugh @spencerlyon2 @albop Thanks all for this discussion. In the short term I'll try to include a version of Chris Carroll's 1D endogenous grid method in the lectures, along with sample code. After that we can get a sense of demand as to whether there's a need for something more ambitious.
I search the document and cannot find the related information. EGM is becoming more and more popular in computing, so I wonder if QuantEcon has any plan to provide related module? Thanks.