楼主: beenwaiting
15227 28

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

21
beenwaiting 发表于 2014-10-6 20:53:39
⊕o怀恋o 发表于 2014-10-5 14:51
请问一下,那个内生变量的稳态值是根据前面的方程求得的吗?
是自己求出来的,解方程组,使用参数值表示,根据参数值求出来的稳态值。

22
⊕o怀恋o 发表于 2014-10-8 21:31:12
beenwaiting 发表于 2014-10-6 20:53
是自己求出来的,解方程组,使用参数值表示,根据参数值求出来的稳态值。
我看那个代码里面一开始就给各个内生变量和外生变量设置了数值,不知道这些数值是怎么来的呢?

23
⊕o怀恋o 发表于 2014-10-8 21:31:49
beenwaiting 发表于 2014-10-6 20:53
是自己求出来的,解方程组,使用参数值表示,根据参数值求出来的稳态值。
还有贝叶斯估计是在哪里用呢?

24
⊕o怀恋o 发表于 2014-10-8 21:50:15
beenwaiting 发表于 2014-10-6 20:53
是自己求出来的,解方程组,使用参数值表示,根据参数值求出来的稳态值。
sigma_a,inv_gamma_pdf,0.12,inf;
sigma_b,inv_gamma_pdf,0.1,inf;
sigma_z,inv_gamma_pdf,0.19,inf;
sigma_theta,inv_gamma_pdf,0.05,inf;
sigma_mu_p,inv_gamma_pdf,0.15,inf;
sigma_mu_w,inv_gamma_pdf,0.25,inf;
rho_a,beta_pdf,0.85,0.1;
rho_z,beta_pdf,0.85,0.1;
rho_b,beta_pdf,0.85,0.1;
rho_theta,beta_pdf,0.85,0.1;
rho_mu_p,beta_pdf,0.85,0.1;
rho_mu_w,beta_pdf,0.85,0.1;
psi,normal_pdf,0.15,0.075;
psi_u,normal_pdf,0.17,0.075;
sigma,normal_pdf,0.36,0.03;
epsilon_p,beta_pdf,0.75,0.15;
epsilon_w,beta_pdf,0.75,0.15;
gamma,normal_pdf,0.6,0.2;

这是贝叶斯估计里面的一段程序,不知道浙商面数值是根据什么赋的啊?

25
beenwaiting 发表于 2014-10-13 20:40:05
贝叶斯估计应该是针对参数的校准时的估计方式,上面的赋值都是自己取值的,有的是根据显示数据估算出来的,有的是业内约定俗成,直接借鉴的。

26
beenwaiting 发表于 2014-10-13 20:44:25
⊕o怀恋o 发表于 2014-10-8 21:50
sigma_a,inv_gamma_pdf,0.12,inf;
sigma_b,inv_gamma_pdf,0.1,inf;
sigma_z,inv_gamma_pdf,0.19,inf;
贝叶斯估计应该是针对参数的校准时的估计方式,上面的赋值都是自己取值的,有的是根据显示数据估算出来的,有的是业内或文献里约定俗成,直接借鉴的。

27
⊕o怀恋o 发表于 2014-10-16 19:40:05
beenwaiting 发表于 2014-10-13 20:44
贝叶斯估计应该是针对参数的校准时的估计方式,上面的赋值都是自己取值的,有的是根据显示数据估算出来的 ...
inv_gamma_pdf,0.12,inf; 那这个inv_gamma_pdf和inf是什么意思

28
beenwaiting 发表于 2014-10-21 12:31:26
inv_gamma是一种分布,叫做逆伽马分布,这个我也是在其他文献中看到的,一般用在冲击变量残差的标准差分布上。那个inf我就不确定了,我自己是把要检验变动的冲击变量的残差标准差的分布设置成这个选项。

29
赵安豆 发表于 2024-8-25 10:58:58
在使用Dynare处理DSGE模型时,想要得到特定冲击变量的脉冲响应函数(IRF),你不需要将其他冲击变量的方差设定为0。这是因为Dynare中的脉冲响应函数分析通常是在假设所有其他冲击变量保持其均值的情况下进行的。

你可以在`shocks;`块中指定一个具体的冲击,并使用`irf`命令来生成该冲击下的脉冲响应,例如:

```
shocks;
var e1; stderr 0.5; % 这里e1是你的一个冲击变量
end;

% 指定你想要观察的IRF长度,比如20期
options_.irf = 20;

stoch_simul(irf=20);
```

这将生成`e1`冲击下所有内生变量对于前20个时期的响应。如果你只想查看特定几个变量的脉冲响应,可以这样:

```
shoch_simul(order=1, irf=20) var_of_interest_1 var_of_interest_2;
```

这里`var_of_interest_1`和`var_of_interest_2`是你想要观察其对冲击响应的具体变量。

重要的是要理解,在你运行IRF分析时,并不需要将其他冲击的方差设置为零。Dynare会自动处理所有冲击,而你的IRF将只展示由指定冲击产生的变化效果。在你指定一个特定冲击时,它会暂时“激活”,而其他冲击则被视为不活动或保持其平均状态。

因此,避免更改标准差以避免错误,并使用上述方法来生成和查看脉冲响应函数。希望这能帮助到你的研究!

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-20 10:11