全部版块 我的主页
论坛 经济学论坛 三区 宏观经济学
18146 19
2013-12-11
对于学习新凯恩斯主义经济模型的同学来讲,dynare软件应该说是一个很大的福音。它省去了我们为了将线性化的式子用matlab,或Gauss,或其他软件编程的时间。论坛里有同学提出了直接用matlab编程。我个人不是很推荐。理由是编写的时候由于输入错误而引起的无法运行比dynare更难查找。当然,如果有同学编程比较熟练的,可以用matlab已有的程序。不过,大多数的子程序,如Sims(2002)的方式,都已经编入到了最新的dynare当中。所以,对于初学者来说,不用这么纠结于学习过于复杂的编程,毕竟这只是一种手段。


但是,让dynare去完成相应的计算,也并不意味着可以不用理解后面的原理。尤其是BK条件。我相信这是大家最烦看到的错误信息。更多地理解例如贝叶斯计量的内容,会提高运用dynare的能力。


对于初次使用dynare的同学,建议用简单的RBC模型去验证就可以了。对于我个人来说,编写程序的最基础的内容是要确保自己的模型推导无误。目前,我没有试过非线性化的模型编程。理由是它需要额外地编写稳态模型。这个尚未尝试过,因此不做评价。(有此经验的同学可跟进补充或发新帖。)


Jordi Gali的书是大家经常用来练手的,可惜他老人家的线性化方法有点“与众不同”。不熟悉的同学推荐看看Carl Warsh的第二章附录。他的方法是目前比较常用的。(需要说明的是,两者之间没有对与错。只是处理的方法稍有不同。)他的网站上有.mod文件,编程之后,大家可以去比照一下。多说一句,Carl的第二章MIU非常有意思。正文里都是用Bellman方程,而到了后面附录全部的推导都是用拉格朗日函数方法。看看初学的同学是否能够适应过来这两种方法。


编程的另一个重要方面,就是要认真地比照自己的模型。看看是否有typos。尤其是timing,例如对于变量k,kbar,b等,即资本投入,资本存量和债券投资等。建议最好隔一段时间去检查一下。有的时候不符合BK条件,就是因为你的timing出了问题。

我个人觉得参数校准,如果你不是用特别另类的模型,一般都是找得到标准参数值的,例如beta=0.98-0.99等。当然,你要是自己以后做研究,可能会遇到非标准参数,那就需要自己通过计量方法去获取了。


小小经验提示下,你在编程的时候,在模型方程输入完成的end;之后,一定要加入resid(1);这个命令。这是用来检查你的每个方程的residuals是否为零。当然,学过编程的同学都知道,这不是严格意义上的零,而是在dynare允许的误差之内的“零”。如果,你放到Matlab,即使一样的方程和参数,会告诉你与dynare不用的residuals。有的时候,因为参数不对,会造成无解。如果没有这个命令,你可能一下子想不到哪里会出问题。


此外,如果你用“check”命令,发现你的eigenvalue的模有1出现了,你就要特别注意了。你的参数或者模型绝对有问题。单位根不是很受欢迎。


先说这么多吧,经验是靠积累的。大家一起来分享吧。帮助别人的时候,也是帮助自己哈。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-12-11 16:22:10
感谢楼主分享,我只是简单学了些,后面不弄了,全忘记了。惭愧啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-11 23:24:00
感谢楼主分享,写得很详细啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-1 18:46:11
楼主您好,你说的“编程的另一个重要方面,就是要认真地比照自己的模型。看看是否有typos。尤其是timing,例如对于变量k,kbar,b等,即资本投入,资本存量和债券投资等。建议最好隔一段时间去检查一下。有的时候不符合BK条件,就是因为你的timing出了问题。”是指什么,是k必须滞后以后呢?还是不能滞后啊?期待您的回复。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-1 20:00:27
非常好的帖子,收藏了,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-22 22:00:55
受教了,好好学习一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群