午后,温暖的阳光洒满甘州小城,外面享用大餐之后,孩他妈想去购物,果断甩下两个包袱,依然决策让我领儿子回家午休。调皮而机灵的儿子问了我一路的问题,有些话题是很好玩的,有些话题则是解释起来比较费劲、毫无逻辑,我尽量给耐心解释着,怕“挫”了孩子的好奇心。小学六年级的儿子,显然已经对这个社会、这世界有了自己的一定的独特认知,对于老爸的一些解释性观点,有的时候他比较赞赏,但有的时候也是持不同见解、不甚苟同。一个人对于这个世界的认知,总是隐藏着其独特的思维方式,idea对于Researcher而言的确是最重要的,但是正如那天在“经济学社区”中和群友讨论一样,光有好的idea,没有实证技术的支持,idea其实只是空中楼阁,无法呈现给大家、无法形成产品(paper)。对于实证研究而言,在现代宏观经济学研究领域而言,编写code的能力在很大程度是核心竞争力。
作为现代宏观经济学分析的一个“fundamental tool”,DSGE建模要求使用数值仿真(numerical solution)的方法。Dynamic (D), Stochastic (S), and General Equilibrium (GE)的实现其实都离不开计算机程序,需要software来完成。对于理论模型,对于DSGE建模,是无法理论离开电脑软件的。对于过去的经济学研究人员而言,例如在二十年前,这的确是一个非常繁重的甚至是对于很多人而言、近似是无法实现的一个“task”,而对于幸运的这个时代的我们而言,我们可以找到大量的可用的公共的可用软件工具,来以是不同的计算机语言来进行DSGE建模,这的确是一个非常幸运的事情。当然,这种幸运,其实,主要是因为我们大家都已经站在了无数巨人的肩膀之上。
下面本人就我所了解的构建DSGE模型的一些主要软件做点简要介绍,目的在于“抛砖引玉”,也希望能有和更多的经济学同行交流,对于我这样的长期自学者而言,不乏存在这样或那样的学习良机。
在介绍各种软件tool之前,重要的话说三边,对于DSGE建模而言:
何以解忧,唯有Dynare。
何以解忧,唯有Dynare。
何以解忧,唯有Dynare。
……
下面我就晒出,我所知道的一些DSGE建模的软件实现途径,限于水平,错误难免,请各位高人一一指出,衷心希望不要“以讹传讹”。
1、Dynare
目前而言,Dynare不折不扣成为了DSGE模型研究的第一武器。网址是http://www.dynare.org
Dynare是一个开源软件,是由CEPREMAP组开发的,这个team的leader是三个大牛,Michel Julliard, StephaneAdjemian and Sebastien Villemot. 我只搜到了Michel Julliard的Homepage,我给Michel Julliard大牛发过一份E-mail,后来幸运地收到了回信,这个mail一直保存在我的gmail的邮箱之中。
Michel Julliard的个人主页是 http://www.mjui.fr/juillard/
关于Dynare,网络上已经有比较好的参考资料。我就不多说,我只在这里说几句,我认为非常关键的几句理解。
Dynare是一个预处理机。Dyanre可以使用非常简单的语言,帮助你将你的非常复杂的经济学理论模型,也即将DSGE模型转换为程序,并以不同的编程语言来执行完成,以此来对模型来进行求解、估计和仿真。由于Matalb是一个商业软件,限于版权问题,Dynare其实还有Octave版本,Octave是一个开源软件,相信在今后会得到更大的发展。
Dynare是一个M文件集合。很多人将Dynrre视为“黑箱”,其实不然,Dynare其实是一个不着不扣的Matalb的M文件集合,也就是CEPREMAP组已经写好了几百个M文件,Dynare只是集合在一起,然后极大地简化了很多繁重的编程工作。要想更深入理解Dynare,其实对于一些m脚本文件可以认真研读。
Dynare是一个开源的傻瓜软件。前几天,我还和朋友在网络交流,提到一个观点,尽管CGE(可计算的一般均衡模型)模型的出现要早一些,但是GAMS价格昂贵,而Dynare则是完全开源的软件,这在很大程度上推导了DSGE建模的快速发展。并且对于使用者而言,需要的无非仅仅是:一个“addpath”,然后是“dynare XXX.mod”即可搞定。Dynare其实近似一个“傻瓜”照相机,你需要的仅仅是推导好你的理论模型,然后按照Dynare的语法写为相应mod文件,按一下快门,就是dynare yourname.mod即可,剩下的工作,其是Dynare已经你的mod文件翻译为相应的m文件来执行,极大地简化了你繁重的工作。Dynare在很大程度上,解放了从事宏观经济学研究者的劳动强度,并且让其有更多的精力专心放在理论模型构建和经济学解释之上,而不是再沦落为酷毙的程序猿第二。
Dynare其实很友善。因为不需要你自己再去编写m文件,所以Dynare的语法其实是非常友善和简单的。你只是需要明白你的内生变量、外生变量,参数以及参数值,然后是模型方程,这些是谁,其实就行了。
Dynare是不断发展的。正然DSGE从出现到现在,现代宏观经济学,或说动态经济学仍然存在极大的发展空间一样,Dynare本身也是在不断向前发展。目前Dynare估计DSGE模型参数,可以使用极大似然估计(maximum likelihood)和贝叶斯技术(Bayesian techniques),这在很大程度上已经表明Dynare完全具备了“三高”(高级微观、高级宏观和高级计量)的基础。Dynare开放者团队不断将最新的研究成果都吸纳进入的Dynare的程序包中,并且Dynare 4版本之后,Dynare就具备开放性,可以允许加载外部程序,极大地方便了研究者。只要DSGE研究有发展,Dynare自然也会随之同步发展。本人坚信,未来的Dynare一定会有更好的发展!
2、gEcon
R是开源的,因为是伟大的!R下面的各种包,比较正式的包已经被有5000多种之上。这些包也是开源的,而gEcon就是在R下面来求解DSGE模型的一个package。这个包是由波兰的一个团队开发的,Department forStrategic Analyses at the Chancellery of the Prime Minister of the Republic ofPoland,牵头人是GrzegorzKlima, Karol Podemski and Kaja Retkiewicz-Wijtiwiak。gEcon的一个主要特性是,模型可以通过直接将模型写出经济行为人的最优问题来求解,好像其不需要推导出一阶条件(F.O.C,first orderconditions )和均衡方程(equilibriumequations)。gEcon可以执行自动求解一阶条件、稳态和线性化方程的算法。
这是gEcon的网址http://gecon.r-forge.r-project.org
gEcon的安装要求R version>=3.0.0,并且需要安装Matrix,MASS, nleqslv, Rcpp and methods这些Packages。关于gEcon的一些自动求解功能,我没有多试验。等后面有时间了,再写专门的Notes来和大家分享。
需要特别说要的是,我个人对于gEcon并没有深入使用,只是给大家提醒的是,除了求解DSGE模型之外,gEcon还能对CGE模型进行求解。
3、YADA
YADA的名字非常有意思,是YetAnother Dsge Application的意思,就是这四个单词的首字母缩写。YADA其实依然是Matlab的m文件的一个集合,是由Anders Warne所开发的一个开源软件。但在国内是无法打开其官网的。YADA可以使用贝叶斯技术来估计和评价DSGE模型和向量自回归模型。我所看到的YADA Manual是February 11, 2015写成的,看来是比较新的一个package,目前知道的人还不是太多。
YADA支持不同的算法来求解对数线性化后的DSGE模型。最快速的算法是Anderson-Moorealgorithm (AiM)
我用的YADAVersion是3.8。根据我个人使用的结果来看,我认为YADA应该是排在Dynare之后的DSGE求解工具。在此,也特别感谢我一个朋友,在美国做访问学者期间,给我带回了这个软件。再次感谢!!!
4、IRIS
IRIS是IMF的IRIS Solutions Team since 2001开发的一个工具包,牵头者是Jaromir Nenes,是一个基于Matlab平台的宏观经济建模、预测的工具,IRIS可以用来求解、仿真和估计(应用极大似然方法)DSGE模型,也可以实用结构性模型的进行预测。
5、RATS
Win RATS是Regression Analysis of Time Series(“时间序列的回归分析”)的缩写,毫无疑问,其功能其实强在时间序列的研究领域,个人感觉是要比EViews和OX matrix更为前进多步的时间序列分析软件。
官网地址是https:// www. estima.com
RATS中的DSGEKPR这样一个范例程序。
RATS绘制出来的DSGE模型中四个主要内生变量,产出、投资、消费和劳动时间对外生技术冲击的脉冲响应函数曲线。
6、Other
6.1 其它的软件求解DSGE
基本上是昙花一现
6.1.2 Gauss
6.1.1 EViews
这是要提这两个软件,因为我曾经见到过有人写出过一点用这两个软件来求解DSGE的范例,EViews同样是要加载R软件来求解,至于Gauss,是计量软件中的“屠龙刀”,用来求解DSGE自然没问题,但是相关实现途径,肯定不是多么容易。我曾经写过这方面的帖子,可详见人大经济论坛(id:gssdzc)或我的扣扣(QQ:529820052)空间日志。
6.2 Other economicmodelling software
6.2.1 Harald Uhlig’s toolkit
6. 2.2 Rational Expectations Models Solver by Christopher A. Sims
6. 2.3 The Anderson-Moore algorithm (AIM)
6. 2.4 CompEcon Toolbox for Matlab
列出这些,其实都是在求解DSGE模型过程中,进行自己编写m代码,以及code的时候,需要调用的一些与DSGE建模相关度非常高的名家所写的M包,罗列在这里,以后希望大家在求解的时候,能够用到。其实很多算法都已经固化在DSGE之中,除非你对DSGE建模已经有了比较深入的了解,一般我是不主张自己动手编写m代码来求解DSGE的,因为你想想,且不论你的编程能力如何,以你一个人之力做出的一个小东东,能够比得上Dynare强大的团队,很多年的心血吗?并且他们每年在展开年会,吸纳最新的、最前沿的研究成果呢。DSGE研究者,应该更多地将精力放在自己的idea构思,理论模型推导,以及对模型实证结果的解释上,也就是说,做好一个讲故事的人,并且要给这个故事给出一个合理的解释出来,透过模型世界,来深入研究现实的经济世界。
一句话总结:其实求解DSGE模型,目前最主要就是使用Dynare,然后是YADA和gEcon、IRIS可以参照使用,其它的基本上都是然并卵。特别一提的是,Dynare、YADA和IRIS都是基于Matlab平台的软件包,而gEcon是基于R平台的软件包,其它的软件,或许有一些人进行了一些开放,但都是比较简单的特定范例,实用求解的意义真是不太大滴。
重要的话再说一边:何以解忧,唯有Dynare!
一定程度上将,DSGE是经济学家研究经济世界的“电脑实验室”,而Dynare就是打开这个在电脑软件所构建虚拟世界的那把“点石成金”的金手指。
目前为止,本人所阅读过的DSGE英文书就这些。后面我将会写《DSGE发展小史》、《中国大陆DSGE模型研究者及其论文简介》等系列Notes,也希望能与更多的经济学研究同行有更多的交流。
周潮
QQ:529820052
E-mail:gssdzc@126.com