各位坛友,我在尝试实现 " A Small Open Economy DSGE Model for Pakistan " by ADNAN HAIDER AND SAFDAR ULLAH KHAN (2008) 一文中的DSGE模型(原文:
http://mpra.ub.uni-muenchen.de/12977/1/MPRA_paper_12977.pdf),这篇文章在附录中提供了线性化之后的模型描述,但是我尝试编写之后始终出现如下提示:
There are 5 eigenvalue(s) larger than 1 in modulus
for 6 forward-looking variable(s)
The rank condition ISN'T verified!
model_diagnostic: the Jacobian of the static model is singular
there is 1 colinear relationships between the variables and the equations
Colinear variables:
rstar
pistar
Colinear equations
4 6 12
The presence of a singularity problem typically indicates that there is one
redundant equation entered in the model block, while another non-redundant equation
is missing. The problem often derives from Walras Law.
Error using print_info (line 45)
Blanchard Kahn conditions are not satisfied: indeterminacy
Error in stoch_simul (line 98)
print_info(info, options_.noprint, options_);
Error in dsgeforpak (line 257)
info = stoch_simul(var_list_);
Error in dynare (line 180)
evalin('base',fname) ;
请各位坛友赐教,不胜感激!
我的代码如下:
/*
*小型开放经济体
*/
var pi,mc,pih,pif,psi,c,r,y,s,q,rstar,pistar,ystar,a;
varexo epsilonpih,epsilonpif,epsilonq,epsilons,epsilonys,epsilonrs,epsilona;
parameters lamdah,beta,thetah,thetaf,lamdaf,alpha,sigma,phi,eta,h,rhoy,rhor,rho,phir,phipi,phiy;
//beta为主观贴现因子
beta=0.98;
//thetah为本地价格粘性,表示本地厂商不调价的比率
thetah = 0.5;
thetaf = 0.5;
//lamdah=(1-thetah)*(1-beta*thetah)/thetah
lamdah = 0.505;
lamdaf = 0.505;
//alpha表示开放程度,进口市场份额
alpha = 0.35;
//sigma表示消费的跨期替代弹性的倒数
sigma = 1;
//phi表示劳动供给对真实工资的弹性的倒数
phi = 1;
//eta表示国内产品与国际产品间的替代弹性
eta = 1;
//h表示前一起的影响程度
h = 0.5;
rhoy = 0.5;
rhor = 0.5;
rho = 0.5;
phir = 0.5;
phipi = 1.5;
phiy = 0.25;
model;
//通胀
//本国产品通胀
pih=lamdah*mc+beta*(1-thetah)*pih(+1)+thetah*pih(-1)+epsilonpih;
//进口产品通胀
pif=beta*(1-thetaf)*pif(+1)+thetaf*pif(-1)+lamdaf*psi+epsilonpif;
//总通胀水平
pi=(1-alpha)*pih+alpha*pif;
//消费欧拉方程
c(+1)-h*c-(1-h)*(r-pi(+1))/sigma=c-h*c(-1);
//厂商边际成本
mc=phi*y+sigma*(c-h*c(-1))/(1-h)+alpha*s-(1+phi)*a;
//汇率
//UIP
q(+1)-q=-(r-pi(+1))-(rstar-pistar(+1))+epsilonq;
//一价定律缺口
psi=-q-(1-alpha)*s;
//TOT
s-s(-1)=pif-pih+epsilons;
//国际风险分担
ystar-h*ystar(-1)-(1-h)*q/sigma=c-h*c(-1);
//市场出清
y=(2-alpha)*eta*alpha*s+(1-alpha)*c+alpha*eta*psi+alpha*ystar;
//外生冲击
//国外产出
ystar=rhoy*ystar(-1)+epsilonys;
//国外利率水平
rstar-pistar(+1)=rhor*(rstar-pistar)+epsilonrs;
//rstar=rhor*(rstar(-1))+epsilonrs;
//技术冲击
a=rho*a(-1)+epsilona;
//货币政策
r=phir*r(-1)+(1-phir)*(phipi*pi+phiy*(y-y(-1)));
end;
initval;
pi=0;
mc=0;
pih=0;
pif=0;
psi=0;
c=0;
r=0;
y=0;
s=0;
q=0;
rstar=0;
pistar=0;
ystar=0;
epsilonpif=0;
epsilonpih=0;
epsilonq=0;
epsilonys=0;
epsilona=0;
epsilons=0;
epsilonrs=0;
end;
resid(1);
steady;
check;
model_diagnostics;
shocks;
var epsilona;stderr 0.009;
end;
stoch_simul;