看到这是三年前的问题,想必题主已经解决。最近在学这方面的东西,说说自己的浅见。跟作者背景相同,宏观方向,本硕金融,数理背景不强,除了平时做DSGE用到dynare之外,还需要其他的一些数值工具。但我通过寻找资料发现,需要学的数值方法并不太多,主要有以下几种:
- Log-linear approximation
- Perturbation Methods
- Projection Methods
- Value function Iteration (Iteration methods)
虽然也会有Parameterized expectations和Minimum Weighted Residual Methods等方法,但可能是适用面相对狭窄,不如上面的几种常见。针对上面的一些计算方法,我找到了一些资料(根据题主的要求,我尽量提供用matlab编写的程序):
- Log-linear approximation 这种方法最为常用,dynare做的也很成熟。但如果题主想追根究底,Blanchard and Kahn (1980), Uhlig (1999), Sims (2000), Klein (2000) 都是一手的论文。Uhlig有专门的matlab语言程序包,Klein的网站上也有用matlab编写的求解linear/quadratic difference equations的程序
- Perturbation Methods 里面的比较成熟的研究主要是:Uribe and Schmitt-Grohe (2004)这篇文章非常好读也比较经典,更良心的是,可以在作者的主页找到相应的matlab程序包(一阶和二阶),程序注释很全,非常平易近人。除此之外还有两个人不可忽视,一个是Fabrice Collard,另一个是Jesús Fernández-Villaverde,这一点将在后面说明。
- Projection Methods,我对这一方法不太熟悉。但Jesús Fernández-Villaverde以及Heer and Maußner (2009) 和 DeJong and Dave (2011) 中都有所涉猎,详细将在后文说明。
- Value function Iteration,在这里强烈推荐Fabrice Collard的notes,用57页详细讲解了动态规划,从确定性到随机,从值函数迭代到政策函数迭代,还有插值等改进求解的方法,甚至连如何simulation和处理constraints都手把手教给你。最关键的是,所有方法都带有相应的matlab程序,你说良不良心!!!如果没有时间直接读SLP,参考Nicola Pavoni的Lecture notes补充一些理论基础,Pavoni用一章讲了DP用到的数学基础,比SLP要全很多(Pavoni是经济学也是数学博士,应该是比较靠谱的)。
上面主要是针对具体的方法写的一些paper以及code,当然还有textbooks将这些内容结合起来:
- Judd的Numerical Methods in Economics,我看到在问题的评论里有人提到这本书,在我不知道如何入门这一领域的时候,一个教授也向我建议过此书,不过正如题主所说,这本书唯一的问题就是没有code(可能有,但作者的网站一直说他的archive遭到了破坏,一些code丢失了-_-),所以在描述具体操作的时候,可能就过于抽象,难以理解。不过这本书的地位难以撼动,理论翔实,作者也是computational的大牛。
- Miranda and Fackler的Applied Computational Economics and Finance,这本书有一个开挂级别的matlab程序包compecon,在作者Fackler的网站上可以找到,关于这个程序包的威力,知乎有人介绍过。对于这本书,大概可以看作这个package的manual?貌似没有太多的理论部分。
- Marimon and Scott的Computational Methods for the Study of Dynamic Economies,这本书是一个论文集(Sargent为此书作序),主要包含了线性和非线性方法,Uhlig (1999) 就收录其中,这本书很好的一点是,在每一章的末尾,作者都会给出相应的程序说明(类似于README),想必在作者的网站可以找到相应的代码。
- Heer and Maußner的Dynamic General Equilibrium Modelling, Computational Methods and Applications。这本书之前被我忽视掉了,一开始没有了解数值方法的时候在想这本书到底在讲些什么!但后来了解到数值计算之后才发现这本书简直良心,作者简直是手把手教你怎么应用里面的方法(一些numerical方面的优化和改进),并且有很多作者的私货,可以说是干货满满。但是,但是,唯一有点可惜的是,这本书的主力语言是Gauss和Fortran,但作者“辩解”说Gauss很像matlab的,你可以很容易移植。(手动白眼)
- DeJong and Dave的 Structural Macroeconomics,这本书第二版的4,5章包含了我一开始列出的方法,如果没有时间的话,可以读着一部分当作intro,作者貌似提供了Gauss的代码。
除了Textbook之外,也有一些大牛的notes值得参考:
- Jesús Fernández-Villaverde在其网站上公布了讲课的ppt,比如,他与大佬Christiano在NBER开过一个mini course,主要讲Computational Tools and Macroeconomic Applications。给力的一点是,NBER的网站上可以找到他们的讲课视频!!简直要哭了好嘛,能见到动态版的大佬,还是给我们讲Computational Tools,不过有点纠结的是Fernández-Villaverde的Spain式英语实在是折磨听力,Christiano大佬的则十分清晰。
- Fabrice Collard在前面提过,可以说是良心大佬了,他在自己的官网上用notes的形式讲解了一系列非线性方法,并且还包含了Numerical differentiation and integration等作者需要的东西以及bisection和newton等常见的非线性求解方法。并且,作者竟然在每个notes后面附上了matlab的code,反正我是第一次见notes后面带code。可以说是良心大大的好(已经词穷….)。
以上是我暂时想到的,有新的内容再补充。转载请注明出处。