|
当一个DSGE的模型确定了之后,模型的稳态值实际上就已经“基本确定”下来了。无论你是自行进行对数线性化,还是让dynare替你进行线性化,模型的稳态值都是相同的,所不同的仅仅是由于变量自身含义的不同所致。由于dynare计算稳态的能力比较有限,通常的做法是自己先自行计算出内生变量的稳态值,然后用initval命令直接赋值给dynare从而直接开始进行计算。当然,你也可以用initval任意赋值给dynare,然后用steay命令让他自己算,但如果你赋的值距离真实的稳态值太远,dynare往往算不出。
举例说,内生变量y的稳态值是一个数,用\[y_{ss}\]表示,如果你是把水平值方程输进去的话(即model命令),你就要在initval命令里告诉dynare \[y=y_{ss}\];如果你进行了对数线性化编写codes(即model(linear)命令),那么你的y实际上表示\[\tilde y =lg(y)-lg(y_{ss})\],即y的对数偏离,在initval命令里你实际写的是y=0,因为稳态时\[lg(y)-lg(y_{ss})=0\],但注意了,就像前面说的,这个y实际上表示的是\[\tilde y \],虽然稳态赋值不一样,但是对于这个模型,稳态都是同样的\[y_{ss}\]。不同的仅仅是因为变量自身含义不同而已。
以上是概念方面。回到你最初的问题,如果你仅仅是想要求解稳态数值,最好的办法就是自己去计算(推荐),这样你可以自己选择后面是自己对数线性化用model(linear)命令还是直接输入水平值模型用model命令。或者,模型不复杂的情况下,model命令下用steay命令让dynare替你算(不推荐)。
如果你除了想要得到确定的稳态值,又想做偏离程度的IRF的话,也有好几种情况:
1.手动计算出稳态值+手动对数线性化+model(linear)命令;
2.手动计算出稳态值+model命令+利用IRF的数据(存量变化)自己计算画图;
3. 手动计算出稳态值+model命令,但是在model block输入方程的时候,把原来的 a+b=c 的方程换成 \[e^a+ e^b =e^c\],initval模块作类似处理(取对数),这样dynare自动给出的IRF图就是偏离程度了(和前面\[lg(y)-lg(y_{ss})\]的道理一样)。
这里比较推荐后两种。
p.s. 所以你可以看到命令的选择、方程输入的方法稍有不同,最后结果就不一样了,这也是为什么你之前那个IRF的帖子里我要你把.mod file贴上来的原因~~
另外谁知道论坛帖子里的latex公式怎么让他不变成行间模式?第一次用,点完回复一脸懵逼
|