楼主: beenwaiting
15256 28

[DSGE讨论专题] 请教如何在Matlab中输出DSGE模型冲击变量的脉冲响应函数 [推广有奖]

  • 0关注
  • 6粉丝

已卖:1份资源

本科生

20%

还不是VIP/贵宾

-

威望
0
论坛币
371 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1868 点
帖子
46
精华
0
在线时间
39 小时
注册时间
2007-6-11
最后登录
2019-2-15

楼主
beenwaiting 发表于 2014-8-7 17:37:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教各位牛人,知不知道如何在DSGE模型中做脉冲响应函数呢?
我的模型已经用Dynare构建好了,稳态、参数等都没有问题,共有四个冲击变量,现在可以按四个冲击变量同时随机变动来运行程序,输出所有变量的模拟时间序列。但在现在的情况下,将任一冲击变量的方差设为0,则程序就会报出错误:
??? Error using ==> initial_estimation_checks at 38
initial_estimation_checks:: Estimation can't take place because too many shocks have been calibrated
with a zero variance!

Error in ==> initial_estimation_checks at 38
    error(['initial_estimation_checks:: Estimation can''t take place because too many shocks have been
    calibrated with a zero variance!'])

Error in ==> dynare_estimation_1 at 179
    oo_ =
    initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);
   
Error in ==> dynare_estimation at 89
    dynare_estimation_1(var_list,dname);

Error in ==> dsge_zhaolog_est at 280
dynare_estimation(var_list_);

Error in ==> dynare at 180
evalin('base',fname)

请问各位大牛知不知道在Matlab中如何对某一个冲击变量施加定量的冲击,让其他冲击变量保持不变,输出脉冲响应函数呢?或者是否有直接的命令输出单一冲击变量或两个冲击变量的脉冲响应呢?
谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:dsge模型 脉冲响应函数 MATLAB atlab matla 运行程序 模型 如何

回帖推荐

ahnulxy 发表于2楼  查看完整内容

如果你去读dynare 的源代码,你会发现这个问题其实不难。我自己动手做过。 如果没记错的话,你可以使用simult_.m and irf.m 两个函数来实现你的目的,借用他的代码。使用simult_.m 的目的是获取模型的简化解形式,即近似解。irf就是脉冲响应,在这里你可以单独设置某个冲击,然后获取IRF的时间序列

沙发
ahnulxy 发表于 2014-8-9 11:23:29
如果你去读dynare 的源代码,你会发现这个问题其实不难。我自己动手做过。

如果没记错的话,你可以使用simult_.m  and irf.m 两个函数来实现你的目的,借用他的代码。使用simult_.m 的目的是获取模型的简化解形式,即近似解。irf就是脉冲响应,在这里你可以单独设置某个冲击,然后获取IRF的时间序列

藤椅
ahnulxy 发表于 2014-8-9 11:29:17
出现这个问题的原因,可能是你使用了估计命令,而不是stoch_simul
当冲击变量的个数少于  什么来着,忘的好快,一个月不用全忘了,就会出现这个错误。你看看04年JEDC上的那篇经典的二阶求解文章,会得到答案。
另一个可能的解决方案是 你使用随机模拟命令stoch_simul,而不是估计命令。既然你参数都估计了,就用估计出来的那些值进行校准。

板凳
ahnulxy 发表于 2014-8-9 11:29:51
出现这个问题的原因,可能是你使用了估计命令,而不是stoch_simul
当冲击变量的个数少于  什么来着,忘的好快,一个月不用全忘了,就会出现这个错误。你看看04年JEDC上的那篇经典的二阶求解文章,会得到答案。
另一个可能的解决方案是 你使用随机模拟命令stoch_simul,而不是估计命令。既然你参数都估计了,就用估计出来的那些值进行校准。

报纸
beenwaiting 发表于 2014-8-10 18:03:04
ahnulxy 发表于 2014-8-9 11:29
出现这个问题的原因,可能是你使用了估计命令,而不是stoch_simul
当冲击变量的个数少于  什么来着,忘的 ...
非常感谢前辈!我确实一直在用stoch_simul,所以每次都是几个冲击变量一起随机变化来着哈~知道有irf这个命令,对我来说很有帮助!非常感谢!!!

地板
beenwaiting 发表于 2014-9-14 12:13:25
ahnulxy 发表于 2014-8-9 11:23
如果你去读dynare 的源代码,你会发现这个问题其实不难。我自己动手做过。

如果没记错的话,你可以使用s ...
前辈你好!我现在在用DSGE模型做政策试验,已经用dynare把模型描述完毕,想试着做两个冲击变量同时冲击的复合的脉冲响应图。想向前辈请教Matlab里面有没有可以直接实现输出双变量脉冲响应的命令呢?
另外,我对于DSGE模型的参数估计的原理有点不太清楚,我先是根据前人论文中的设定以及实际数据的回归设置了参数值,然后在dynare程序里面有Markov Chain-Monte Carlo对参数分布的设定中设置成参数的均值,进行校准。我请教了其他做过DSGE的同学,他们是在进行数据模拟的同时进行参数校准的,参数的后验分布和变量的模拟数值是同时输出的。但我不太明白,这个参数的校准是基于什么进行的呢?或者说,本应该基于什么进行校准呢?不知道前辈有没有相关带程序的参考文献能够推荐呢?
此外,我在dynare中对冲击变量的残差值的参数进行设定的时候,程序使用手册中给的例子中通常是只包括对epsilon的方差设定为inverse gamma分布,但没有对epsilon的均值进行设定的例子,是说shock残差的均值不需要设定吗?如果可以设定应该怎么在dynare里进行设定校准呢?
最后,我目前用simult做出来的数据模拟值,很奇怪地出现,冲击变量的数值极大。因为是用对数线性化做的,变量的初始值都是0,冲击变量的方差设定的也是0.001左右的数值,但模拟出来的冲击变量的数值确达到50左右这么大,如果按对数来算的话,变化值就太大了!是因为参数校准和模拟数据同时进行导致的吗?还是我没有设定冲击变量的变化残差的均值导致的呢?
不好意思,一下问了这么多问题,但我身边没有熟悉DSGE模型和Matlab编程的人,只好将您当做专家向您咨询了。或者我有什么可以向您表达感谢的方式吗?您可以尽管提~非常感激!

7
beenwaiting 发表于 2014-9-14 12:14:48
ahnulxy 发表于 2014-8-9 11:23
如果你去读dynare 的源代码,你会发现这个问题其实不难。我自己动手做过。

如果没记错的话,你可以使用s ...
前辈你好!我现在在用DSGE模型做政策试验,已经用dynare把模型描述完毕,想试着做两个冲击变量同时冲击的复合的脉冲响应图。想向前辈请教Matlab里面有没有可以直接实现输出双变量脉冲响应的命令呢?
另外,我对于DSGE模型的参数估计的原理有点不太清楚,我先是根据前人论文中的设定以及实际数据的回归设置了参数值,然后在dynare程序里面有Markov Chain-Monte Carlo对参数分布的设定中设置成参数的均值,进行校准。我请教了其他做过DSGE的同学,他们是在进行数据模拟的同时进行参数校准的,参数的后验分布和变量的模拟数值是同时输出的。但我不太明白,这个参数的校准是基于什么进行的呢?或者说,本应该基于什么进行校准呢?不知道前辈有没有相关带程序的参考文献能够推荐呢?
此外,我在dynare中对冲击变量的残差值的参数进行设定的时候,程序使用手册中给的例子中通常是只包括对epsilon的方差设定为inverse gamma分布,但没有对epsilon的均值进行设定的例子,是说shock残差的均值不需要设定吗?如果可以设定应该怎么在dynare里进行设定校准呢?
最后,我目前用simult做出来的数据模拟值,很奇怪地出现,冲击变量的数值极大。因为是用对数线性化做的,变量的初始值都是0,冲击变量的方差设定的也是0.001左右的数值,但模拟出来的冲击变量的数值确达到50左右这么大,如果按对数来算的话,变化值就太大了!是因为参数校准和模拟数据同时进行导致的吗?还是我没有设定冲击变量的变化残差的均值导致的呢?
不好意思,一下问了这么多问题,但我身边没有熟悉DSGE模型和Matlab编程的人,只好将您当做专家向您咨询了。或者我有什么可以向您表达感谢的方式吗?您可以尽管提~非常感激!

8
⊕o怀恋o 发表于 2014-9-16 10:33:17
楼主,你好!我最近也要写一篇DSGE模型的论文,不知道您能把程序包,和怎么设置参数告诉一下吗?万分感谢

9
beenwaiting 发表于 2014-9-16 23:06:52
⊕o怀恋o 发表于 2014-9-16 10:33
楼主,你好!我最近也要写一篇DSGE模型的论文,不知道您能把程序包,和怎么设置参数告诉一下吗?万分感谢
你好!因为我现在是小组一起做课题,现在组内学计算机的同学在负责实现模型的编程,我主要负责模型推导和政策试验的设计。不过我们编程主要参考的是张卫平的《货币政策理论:基于动态一般均衡方法》,这本书有编程的实例,写得比较详细,你看看对你编程会不会有帮助?

10
⊕o怀恋o 发表于 2014-9-17 14:11:40
beenwaiting 发表于 2014-9-16 23:06
你好!因为我现在是小组一起做课题,现在组内学计算机的同学在负责实现模型的编程,我主要负责模型推导和 ...
请问这本书中有讲怎么在matlab中操作的么?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-2 19:27