楼主: giant
18637 34

[宏观经济学政策] 关于dynare程序调试 [推广有奖]

21
giant 发表于 2013-10-8 09:48:17
重新检查修改了线性化的式子,出现了新的错误:
Error using print_info (line 46)
Blanchard Kahn conditions are not satisfied: indeterminacy due to rank failure
这个怎么改啊?

22
giant 发表于 2013-10-8 12:26:14
修改了模型后报错:indeterminacy due to rank failure
这个会是什么原因啊?

23
richardgu26 发表于 2013-10-8 16:12:41
没有具体看你的模型,不过,给你一个建议。你先把没有改过的模型,编好dynare,试试能否跑出来。如果没有报错,就在这个基础上改。一般dynare报错都是因为改动的时候出问题,但首先要保证你改之前的基准模型是对的。

24
rastila 在职认证  发表于 2013-10-8 17:51:26
giant 发表于 2013-10-8 12:26
修改了模型后报错:indeterminacy due to rank failure
这个会是什么原因啊?
把你现在改的模型复制上来,你直接写个错误报告,没人知道在哪里找问题

25
giant 发表于 2013-10-9 08:53:58
rastila 发表于 2013-10-8 17:51
把你现在改的模型复制上来,你直接写个错误报告,没人知道在哪里找问题
不好意思忘记了,程序如下,请帮忙看看
var rc rd rl m dp c y w h k z a g p;
varexo ze ae ge;
parameters beta delta theta b rhoz rhoa rhog;
beta=0.99;
delta=0.025;
theta=0.36;
b=-2.5805;
rhoz=0.005;
rhoa=0.005;
rhog=0.005;
model(linear);
w(+1)=w+(1-beta*(1-delta))*rd;
p+p(+1)+c(+1)+z(+1)+w=0;
z+w+c+rd=0;
0.9004*c=1.6676*m(-1)-0.7672*dp;
1.6676*m+12.4193*k=2.3469*0.3269*(w(-1)+h)+0.0351*12.4193*(rc+k(-1))+(1-delta)*12.4193*k(-1)+1.0101*0.7672*(rd+dp);
y=a+theta*k(-1)+(1-theta)*h;
1.2109*y=1.0101*2.3469*0.3269*(rl+w+h)+0.0351*12.4193*(rc+k(-1));
rl+w=a+theta*(k(-1)-h);
rc=a+(theta-1)*(k(-1)-h);
0.7672*(rl-rd)+1.6676*(1+rl+g)=0;
0.7672*(dp-w-h)+1.6676*g=0;
z=rhoz*z(-1)+ze;
a=rhoa*a(-1)+ae;
g=rhog*g(-1)+ge;
end;
initval;
rc=0;
rd=0;
rl=0;
m=0;
dp=0;
c=0;
y=0;
w=0;
k=0;
h=0;
z=0;
a=0;
g=0;
end;
steady;
shocks;
var ze;stderr 0.009;
var ae;stderr 0.009;
var ge;stderr 0.099;
end;
stoch_simul;

26
rastila 在职认证  发表于 2013-10-9 19:01:27
giant 发表于 2013-10-9 08:53
不好意思忘记了,程序如下,请帮忙看看
var rc rd rl m dp c y w h k z a g p;
varexo ze ae ge;
我觉得你模型没有推导正确,或者是线性化某个地方错了。我觉得dynare的意思是某个地方模型有多余的一个方程,检查后的特征值数量是满足条件的。
var rc rd rl m dp c w h k z a g p;
varexo ze ae ge;
parameters beta delta theta b rhoz rhoa rhog;
beta=0.99;
delta=0.05;
theta=0.36;
b=-2.5805;
rhoz=0.005;
rhoa=0.005;
rhog=0.005;

predetermined_variables p;

model(linear);
w(+1)=w+(1-beta*(1-delta))*rd;
p+p(+1)+c(+1)+z+w=0;
z+w+c+rd=0;
0.9004*c=1.6676*m(-1)-0.7672*dp;
1.6676*m+12.4193*k=2.3469*0.3269*(w(-1)+h)+0.0351*12.4193*(rc+k(-1))+(1-delta)*12.4193*k(-1)+1.0101*0.7672*(rd+dp);
1.2109*(a+theta*k(-1)+(1-theta)*h)=1.0101*2.3469*0.3269*(rl+w+h)+0.0351*12.4193*(rc+k(-1));
rl+w=a+theta*(k(-1)-h);
rc=a+(theta-1)*(k(-1)-h);
0.7672*(rl-rd)+1.6676*(1+rl+g)=0;
0.7672*(dp-w-h)+1.6676*g=0;
z=rhoz*z(-1)+ze;
a=rhoa*a(-1)+ae;
g=rhog*g(-1)+ge;
end;

check;
steady;
shocks;
var ze;stderr 0.009;
var ae;stderr 0.009;
var ge;stderr 0.099;
end;
stoch_simul(order=1);

27
giant 发表于 2013-10-10 10:23:25
rastila 发表于 2013-10-9 19:01
我觉得你模型没有推导正确,或者是线性化某个地方错了。我觉得dynare的意思是某个地方模型有多余的一个方 ...
我调整了一下,原来方程缺失多余了一个。
现在出现的问题是Error using print_info (line 63)
The steady state contains NaN or Inf
不知道该怎么改啊?
源程序如下:
var rc rd rl m dp c y w h k z a g;
varexo ze ae ge;
parameters beta delta theta b rhoz rhoa;
beta=0.99;
delta=0.025;
theta=0.36;
b=-2.5805;
rhoz=0.005;
rhoa=0.005;
model(linear);
w(+1)=w+(1-beta*(1-delta))*rd;
rd+z(+1)+c=z+c(+1);
0.9004*c=1.6676*m(-1)-0.7672*dp;
1.6676*m+12.4193*k=2.3469*0.3269*(w(-1)+h)+0.0351*12.4193*(rc+k(-1))+(1-delta)*12.4193*k(-1)+1.0101*0.7672*(rd+dp);
y=a+theta*k(-1)+(1-theta)*h;
1.2109*y=1.0101*2.3469*0.3269*(rl+w+h)+0.0351*12.4193*(rc+k(-1));
rl+w=a+theta*(k(-1)-h);
rc=a+(theta-1)*(k(-1)-h);
0.7672*(rl-rd)+1.6676*(1+rl+g)=0;
0.7672*(dp-w-h)+1.6676*g=0;
z=rhoz*z(-1)+ze;
a=rhoa*a(-1)+ae;
g=ge;
end;
initval;
rc=0;
rd=0;
rl=0;
m=0;
dp=0;
c=0;
y=0;
w=0;
k=0;
h=0;
z=0;
a=0;
g=0;
end;
steady;
shocks;
var ze;stderr 0.009;
var ae;stderr 0.009;
var ge;stderr 0.099;
end;
stoch_simul;

28
giant 发表于 2013-10-10 10:32:10
giant 发表于 2013-10-10 10:23
我调整了一下,原来方程缺失多余了一个。
现在出现的问题是Error using print_info (line 63)
The stea ...
这个模型里,变量g就直接等于白噪声了,那么g的稳态值应该是多少呢?
已有 1 人评分经验 收起 理由
rastila + 1 我给你改的程序试了?

总评分: 经验 + 1   查看全部评分

29
giant 发表于 2013-10-11 09:42:27
giant 发表于 2013-10-10 10:32
这个模型里,变量g就直接等于白噪声了,那么g的稳态值应该是多少呢?
我试了你的程序,没问题,真是佩服!我有几个问题想请教一下:1,为什么要把程序里的z(+1)改为z呢?2,delta是折旧率,我看书上都用0.025,为什么要改为0.05呢?3,predetermined_variables这个命令我不知道怎么用,userguide里也没有,能教教我怎么用么? 4,就是模型的第二个等式和第三个等式是可以合并的,把z+w带入即可,这样方程里就有c(+1)和c了,应该就是消费的欧拉方程。我看你帮我改的,把y的方程带入了,那么这个为何不用带入呢?另外,模型最后一个方程我推导错了,我在你的程序基础上把那个方程改了。dynare也出了结果,但以上四个问题我还不太明白,麻烦你帮忙指导指导啊。

30
giant 发表于 2013-10-11 09:42:55
rastila 发表于 2013-10-9 19:01
我觉得你模型没有推导正确,或者是线性化某个地方错了。我觉得dynare的意思是某个地方模型有多余的一个方 ...
我试了你的程序,没问题,真是佩服!我有几个问题想请教一下:1,为什么要把程序里的z(+1)改为z呢?2,delta是折旧率,我看书上都用0.025,为什么要改为0.05呢?3,predetermined_variables这个命令我不知道怎么用,userguide里也没有,能教教我怎么用么? 4,就是模型的第二个等式和第三个等式是可以合并的,把z+w带入即可,这样方程里就有c(+1)和c了,应该就是消费的欧拉方程。我看你帮我改的,把y的方程带入了,那么这个为何不用带入呢?另外,模型最后一个方程我推导错了,我在你的程序基础上把那个方程改了。dynare也出了结果,但以上四个问题我还不太明白,麻烦你帮忙指导指导啊。

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-26 01:11