悬赏 5 个论坛币 已解决
新手在改写别人代码的时候出了问题,下面的代码是原代码,可行的,当我只改变了初始参数的赋值时,就找不到稳态了。而且随意改变一个就不行,请问是哪里出了问题:
var Y, C, IK, K, IH, H, L, E, W, R, A, B;
varexo e, v;
parameters alpha, beta, deltak, deltah, gamma, theta, rhoA, rhoB;
alpha = 0.35; //想要改成0.4
beta = 0.97; //想要改成0.985
deltak = 0.06; //想要改成0.55
deltah = 0.01; //想要改成0.0098
gamma = 0.40;
theta = 0.80; //想要改成0.6
rhoA = 0.95;
rhoB = 0.95;
model;
C = (gamma/(1-gamma))*(1-L-E)*H*W;
1 = beta*((C/C(+1))*(R(+1)+(1-deltak)));
Y = A*(K(-1)^alpha)*((L*H)^(1-alpha));
K = (Y-C)+(1-deltak)*K(-1);
IK = Y-C;
H = IH+(1-deltah)*H(-1);
IH = B*(E)^theta;
(1-gamma)/((1-L-E)*theta*B*(E)^(theta-1))=
beta*((gamma*W(+1)*L(+1))/C(+1)+
((1-gamma)*(1-deltah)/(1-L(+1)-E(+1)*theta*B*(E+1)^(theta-1))));
W = (1-alpha)*A*(K(-1)^alpha)*((L*H)^(-alpha));
R = alpha*A*(K(-1)^(alpha-1))*((L*H)^(1-alpha));
log(A) = rhoA*log(A(-1))+e;
log(B) = rhoB*log(B(-1))+v;
end;
initval;
Y = 1;
C = 0.8;
L = 0.3;
K = 3.5;
IK = 0.2;
K = 3.5;
E = 0.15;
IK = 0.15^0.8;
H = IK/deltah;
W = (1-alpha)*Y/L;
R = alpha*Y/K;
A = 1;
B = 1;
e = 0;
v = 0;
end;
check;
shocks;
var v; stderr 0.01;
end;
stoch_simul(periods=2100);
最佳答案
Icelus_ZD 查看完整内容
1.请尝试在“check”命令前添加“steady”命令;2.请尝试将模型线性化后再改变参数的初始赋值。线性化后,"model"改为“model(linear)”,同时省略“initval-----end”的代码,因为线性化变量的稳态为零。个人感觉,Dynare不太擅长处理略微复杂的非线性模型。