楼主: Star_Rudy
9809 17

[DSGE讨论专题] 贝叶斯估计mod运行错误,求助~ [推广有奖]

  • 0关注
  • 0粉丝

大专生

96%

还不是VIP/贵宾

-

威望
0
论坛币
934 个
通用积分
0.0001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
791 点
帖子
51
精华
0
在线时间
80 小时
注册时间
2009-11-19
最后登录
2022-4-19

楼主
Star_Rudy 发表于 2014-3-29 11:59:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
您好,我最近在研究DSGE,参考了Troy Matheson的《Assessing the fit of small open economy DSGEs》论文里的模型,加入了货币余额效用和ZF购买,遇到了很多问题,想请教老师们。
这是我在跑程序的时候出现的问题:
Configuring Dynare ...
[mex] Generalized QZ.
[mex] Sylvester equation solution.
[mex] Kronecker products.
[mex] Sparse kronecker products.
[mex] Local state space iteration (second order).
[mex] Bytecode evaluation.
[mex] k-order perturbation solver.
[mex] k-order solution simulation.
[mex] Quasi Monte-Carlo sequence (Sobol).
[mex] Markov Switching SBVAR.

Starting Dynare (version 4.4.2).
Starting preprocessing of the model file ...
Found 21 equation(s).
Evaluating expressions...done
Computing static model derivatives:
- order 1
Computing dynamic model derivatives:
- order 1
- order 2
Processing outputs ...done
Preprocessing completed.
Starting MATLAB/Octave computing.


STEADY-STATE RESULTS:

y                       0
pi                      0
pi_H                    0
pi_N                    0
mc_H                    0
mc_N                    0
a_H                     0
a_N                     0
c                       0
e                       0
q                       0
s                       0
p_N                     0
r                       0
ystar                   0
rstar                   0
pistar                  0
g                       0
Psi_F                   0
pi_F                    0
m                       0

EIGENVALUES:
         Modulus             Real        Imaginary

          0.4507           0.3787           0.2445
          0.4507           0.3787          -0.2445
          0.4906           0.4906                0
             0.5              0.5                0
             0.5              0.5                0
          0.7071            0.625           0.3307
          0.7071            0.625          -0.3307
            0.72           0.6299           0.3487
            0.72           0.6299          -0.3487
             0.8              0.8                0
             0.8              0.8                0
             0.8              0.8                0
             0.8              0.8                0
          0.9318           0.9318                0
            1.93            1.803           0.6868
            1.93            1.803          -0.6868
            2.02             2.02                0
           2.276            2.276                0
             Inf              Inf                0


There are 5 eigenvalue(s) larger than 1 in modulus
for 6 forward-looking variable(s)

The rank condition ISN'T verified!

Loading 72 observations from data_abc.m

Error in computing likelihood for initial parameter values

ESTIMATION_CHECKS: There was an error in computing the likelihood for initial parameter values.
ESTIMATION_CHECKS: You should try using the calibrated version of the model as starting values. To do
ESTIMATION_CHECKS: this, add an empty estimated_params_init-block with use_calibration option immediately before the estimation
ESTIMATION_CHECKS: command (and after the estimated_params-block so that it does not get overwritten):


Error using print_info (line 45)
Blanchard Kahn conditions are not satisfied: indeterminacy

Error in print_info (line 45)
        error(['Blanchard Kahn conditions are not satisfied:' ...

Error in initial_estimation_checks (line 69)
    print_info(info, DynareOptions.noprint, DynareOptions)

Error in dynare_estimation_1 (line 179)
    oo_ =
    initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);

Error in dynare_estimation (line 89)
    dynare_estimation_1(var_list,dname);

Error in mme (line 410)
dynare_estimation(var_list_);

Error in dynare (line 180)
evalin('base',fname) ;


这是我的程序:
var y, pi, pi_H, pi_N, mc_H, mc_N, a_H, a_N, c, e, q, s, p_N, r,
ystar, rstar, pistar, g, Psi_F, pi_F m;                       

varexo epsilon_H, epsilon_N, epsilon_uip, epsilon_ystar, epsilon_pistar,
epsilon_rstar, epsilon_g, epsilon_r;

parameters bet, alpha, nu, eta, lambda, kappa, h, sigma, omega_H, omega_N,
theta_H, theta_N, psi, rho_H, rho_N, rho_ystar, rho_pistar,
rho_rstar, rho_g, omega_F, theta_F, rho_r, psi_a, psi_b, psi_c phi;

bet = 0.99;
alpha = 0.5;
nu = 1;
eta = 1;
lambda = 0.5;
h = 0.5;
sigma = 2;
omega_H = 0.5;
omega_N = 0.5;
theta_H = 0.5;
theta_N = 0.5;
psi = 1;
kappa = 0.5;
rho_H = 0.5;
rho_N = 0.5;
rho_ystar = 0.8;
rho_pistar = 0.8;
rho_rstar = 0.8;
rho_g = 0.8;
omega_F = 0.5;
theta_F = 0.5;
rho_r = 0.8;
psi_a = 0.5;
psi_b = 1.5;
psi_c = 0.1;
phi = 1;

model;

y = alpha*(lambda-1)*(eta+nu*lambda*alpha)*s+nu*lambda*alpha*(lambda-1)*p_N+(1-alpha+alpha*lambda)*c+alpha*(1-lambda)*ystar+alpha*eta*(1-lambda)*q+g;
g=rho_g*g(-1)+epsilon_g;
c = (h/(1+h))*c(-1)+(1/(1+h))*c(+1)-((1-h)/(sigma+sigma*h))*(r-pi(+1));
pi_H = (((1-omega_H)*(1-theta_H)*(1-bet*theta_H))/(theta_H+omega_H*(1-theta_H*(1-bet))))*mc_H+((bet*theta_H)/(theta_H+omega_H*(1-theta_H*(1-bet))))*pi_H(+1)+(omega_H/(theta_H+omega_H*(1-theta_H*(1-bet))))*pi_H(-1);
pi_N = (((1-omega_N)*(1-theta_N)*(1-bet*theta_N))/(theta_N+omega_N*(1-theta_N*(1-bet))))*mc_N+((bet*theta_N)/(theta_N+omega_N*(1-theta_N*(1-bet))))*pi_N(+1)+(omega_N/(theta_N+omega_N*(1-theta_N*(1-bet))))*pi_N(-1);
pi_F = (((1-omega_F)*(1-theta_F)*(1-bet*theta_F))/(theta_F+omega_F*(1-theta_F*(1-bet))))*Psi_F+((bet*theta_F)/(theta_F+omega_F*(1-theta_F*(1-bet))))*pi_F(+1)+(omega_F/(theta_F+omega_F*(1-theta_F*(1-bet))))*pi_F(-1);
mc_H = (sigma/(1-h))*(c-h*c(-1))+psi*y-(psi*(1-lambda)+1)*a_H-psi*lambda*a_N+(lambda-1)*alpha*s+lambda*p_N;
mc_N = (sigma/(1-h))*(c-h*c(-1))+psi*y-psi*(1-lambda)*a_H-(psi*lambda+1)*a_N+(lambda-1)*alpha*s+(lambda-1)*p_N;
a_H = rho_H*a_H(-1)+epsilon_H;
a_N = rho_N*a_N(-1)+kappa*epsilon_N;
c = h*c(-1)+ystar-h*ystar(-1)+((1-h)/sigma)*q;
r = rstar+e(+1)-e+epsilon_uip;
s = s(-1)+pi_H-pi_F;
q = Psi_F-(1-alpha*(1-lambda))*s-lambda*p_N;
Psi_F = Psi_F(-1)+e+pistar-pi_F;
pi = (1-lambda)*pi_H+lambda*pi_N-(1-lambda)*alpha*(s-s(-1));
ystar = rho_ystar*ystar(-1)+epsilon_ystar;
pistar = rho_pistar*pistar(-1)+epsilon_pistar;
rstar = rho_rstar*rstar(-1)+epsilon_rstar;
r = rho_r*r(-1)+psi_a*y+psi_b*pi+psi_c*e+epsilon_r;
m = (sigma*(c-h*c(-1)))/((1-h)*phi)-r/phi;
end;

initval;
y=0;
pi=0;
pi_H=0;
pi_N=0;
mc_H=0;
mc_N=0;
a_H=0;
a_N=0;
c=0;
e=0;
q=0;
s=0;
p_N=0;
r=0;
ystar=0;
rstar=0;
pistar=0;
g=0;
Psi_F=0;
pi_F=0;
m = 0;
epsilon_H=0;
epsilon_N=0;
epsilon_uip=0;
epsilon_ystar=0;
epsilon_pistar=0;
epsilon_rstar=0;
epsilon_g=0;
epsilon_r=0;
end;

steady;
check;

shocks;
var epsilon_H;
stderr 0.01;
var epsilon_N;
stderr 0.01;
var epsilon_uip;
stderr 0.01;
var epsilon_ystar;
stderr 0.01;
var epsilon_pistar;
stderr 0.01;
var epsilon_rstar;
stderr 0.01;
var epsilon_g;
stderr 0.01;
var epsilon_r;
stderr 0.01;
end;

estimated_params;
bet, beta_pdf, 0.99, 0.01;  
alpha, beta_pdf, 0.5, 0.1;
nu, gamma_pdf, 1, 0.2;   
eta, gamma_pdf, 1, 0.2;
lambda, beta_pdf, 0.5, 0.1;
h, beta_pdf, 0.5, 0.1;
sigma, gamma_pdf, 2, 0.5;
omega_H, beta_pdf, 0.5, 0.1;
omega_N, beta_pdf, 0.5, 0.1;
theta_H, beta_pdf, 0.5, 0.1;
theta_N, beta_pdf, 0.5, 0.1;
psi, gamma_pdf, 1, 0.2;
kappa, gamma_pdf, 0.5, 0.2;
rho_H, beta_pdf, 0.8, 0.1;
rho_N, beta_pdf, 0.8, 0.1;
rho_ystar, beta_pdf, 0.8, 0.1;
rho_pistar, beta_pdf, 0.8, 0.1;
rho_rstar, beta_pdf, 0.8, 0.1;
rho_g, beta_pdf, 0.8, 0.1;
omega_F, beta_pdf, 0.5, 0.1;
theta_F, beta_pdf, 0.5, 0.1;     
rho_r, beta_pdf, 0.8, 0.1;
psi_a, gamma_pdf, 0.5, 0.1;
psi_b, gamma_pdf, 1.5, 0.2;  
psi_c, gamma_pdf, 0.1, 0.05;
phi, gamma_pdf, 1, 0.2;
stderr epsilon_H, inv_gamma_pdf, 0.01, inf;
stderr epsilon_N, inv_gamma_pdf, 0.01, inf;
stderr epsilon_uip, inv_gamma_pdf, 0.01, inf;
stderr epsilon_ystar, inv_gamma_pdf, 0.01, inf;
stderr epsilon_pistar, inv_gamma_pdf, 0.01, inf;
stderr epsilon_rstar, inv_gamma_pdf, 0.01, inf;
stderr epsilon_g, inv_gamma_pdf, 0.01, inf;
stderr epsilon_r, inv_gamma_pdf, 0.01, inf;
end;

varobs y s r pi pi_F e m;

estimation(datafile=data_abc) y s r pi pi_F e m;


现在最直接的问题是我的BK条件不满足,特征值大于1的少了一个,之前看老师的帖子说是要重新校准,我也试了一些还是一样的错误,但我觉得会不会是我的方程有问题,直觉是其中有五个方程包含了六个预期变量。或者是我的方程有的是矛盾的?毕竟原文中的有些数学细节我感觉没那么准确。我想知道到底是校准的问题还是模型方程的问题呢?

对数线性化是参考原论文的,我就自然地把方程中所有变量都当做是对稳态的偏离百分比,所以我在处理数据时是把所有数据(对应于对数线性化之前)都进行了季节调整然后取对数然后H-P滤波。(这些都是为了是模型中变量与数据变量对应)。在处理利率r时,我用的7天同业拆借,r先加的1(为了使R=r+1)然后进行的季节调整然后取对数然后H-P滤波。pi是用的p-p(-1)。我想知道我可以这样对应处理吗(这样处理是想方程中所有变量的稳态都是零)?我还没看到有人会进行像我这样的处理。


我看有的文章是一部分参数进行校准,一部分参数进行贝叶斯估计,不过我觉得这样可能会错误,因为直觉不是在一个层次上考虑问题了。上面的错误提示我进行一部分参数校准,如果我仍然全用贝叶斯估计,这样可以吗?或者,怎样把参数校准和贝叶斯估计写在一个mod里,怎么指定呢?有参考的mod吗?

如果我利用贝叶斯估计完成了参数估计,那么我下面是不是就可以用后验均值,然后进行模拟得到IRF呢?


二维码

扫码加我 拉你入群

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

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

关键词:贝叶斯估计 运行错误 Mod 贝叶斯 Perturbation products equation solution second 程序

已有 1 人评分经验 论坛币 收起 理由
linmengmiki + 100 + 100 鼓励积极发帖讨论

总评分: 经验 + 100  论坛币 + 100   查看全部评分

不求最好,只求更好!

沙发
Star_Rudy 发表于 2014-3-29 15:23:02
上面的方程我做了一点修改,主要是原文的一点计算错误,然后我在check命令后加了model_diagnostics;
显示: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:
y     
pi_H  
pi_N  
mc_H  
mc_N  
e     
q     
s     
p_N   
Psi_F
pi_F  
p_H   
Colinear equations
     3    12    15    19    20

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 in AIM: aimcode=4 : Aim: too few big roots.
Undefined function or variable 'aimCode'.

请问老师这个该怎么处理,谢谢!
不求最好,只求更好!

藤椅
Star_Rudy 发表于 2014-3-29 15:28:26
3, 12, 15, 19, 20方程分别是:
c = (h/(1+h))*c(-1)+(1/(1+h))*c(+1)-((1-h)/(sigma+sigma*h))*(r-pi(+1));
r = rstar+e(+1)-e+epsilon_uip;
q = q(-1)+e-e(-1)+pistar-pi;
pistar = rho_pistar*pistar(-1)+epsilon_pistar;
rstar = rho_rstar*rstar(-1)+epsilon_rstar;
在12,19,20方程中都会引入外生冲击,3和15也看不出来共线问题,请问这是怎么回事呢?
不求最好,只求更好!

板凳
Star_Rudy 发表于 2014-3-29 15:34:42
这是新的mod前面部分:
var y, pi, pi_H, pi_N, mc_H, mc_N, a_H, a_N, c, e, q, s, p_N, r,
ystar, rstar, pistar, g, Psi_F, pi_F m p_H;                       

varexo epsilon_H, epsilon_N, epsilon_uip, epsilon_ystar, epsilon_pistar,
epsilon_rstar, epsilon_g, epsilon_r;

parameters bet, alpha, nu, eta, lambda, kappa, h, sigma, omega_H, omega_N,
theta_H, theta_N, psi, rho_H, rho_N, rho_ystar, rho_pistar,
rho_rstar, rho_g, omega_F, theta_F, rho_r, psi_a, psi_b, psi_c, phi;

bet = 0.99;
alpha = 0.5;
nu = 1;
eta = 1;
lambda = 0.5;
h = 0.5;
sigma = 2;
omega_H = 0.5;
omega_N = 0.5;
theta_H = 0.5;
theta_N = 0.5;
psi = 1;
kappa = 0.5;
rho_H = 0.5;
rho_N = 0.5;
rho_ystar = 0.8;
rho_pistar = 0.8;
rho_rstar = 0.8;
rho_g = 0.8;
omega_F = 0.5;
theta_F = 0.5;
rho_r = 0.8;
psi_a = 0.5;
psi_b = 1.5;
psi_c = 0.1;
phi = 1;

model;

y = alpha*(lambda-1)*(eta+nu*lambda*alpha)*s+nu*lambda*alpha*(lambda-1)*p_N+(1-alpha+alpha*lambda)*c+alpha*(1-lambda)*ystar+alpha*eta*(1-lambda)*q+g;
g=rho_g*g(-1)+epsilon_g;
c = (h/(1+h))*c(-1)+(1/(1+h))*c(+1)-((1-h)/(sigma+sigma*h))*(r-pi(+1));
pi_H = (((1-omega_H)*(1-theta_H)*(1-bet*theta_H))/(theta_H+omega_H*(1-theta_H*(1-bet))))*mc_H+((bet*theta_H)/(theta_H+omega_H*(1-theta_H*(1-bet))))*pi_H(+1)+(omega_H/(theta_H+omega_H*(1-theta_H*(1-bet))))*pi_H(-1);
pi_N = (((1-omega_N)*(1-theta_N)*(1-bet*theta_N))/(theta_N+omega_N*(1-theta_N*(1-bet))))*mc_N+((bet*theta_N)/(theta_N+omega_N*(1-theta_N*(1-bet))))*pi_N(+1)+(omega_N/(theta_N+omega_N*(1-theta_N*(1-bet))))*pi_N(-1);
pi_F = (((1-omega_F)*(1-theta_F)*(1-bet*theta_F))/(theta_F+omega_F*(1-theta_F*(1-bet))))*Psi_F+((bet*theta_F)/(theta_F+omega_F*(1-theta_F*(1-bet))))*pi_F(+1)+(omega_F/(theta_F+omega_F*(1-theta_F*(1-bet))))*pi_F(-1);
mc_H = (sigma/(1-h))*(c-h*c(-1))+psi*y-(psi*(1-lambda)+1)*a_H-psi*lambda*a_N+(lambda-1)*alpha*s+lambda*p_N-lambda*p_H;
mc_N = (sigma/(1-h))*(c-h*c(-1))+psi*y-psi*(1-lambda)*a_H-(psi*lambda+1)*a_N+(lambda-1)*alpha*s+(lambda-1)*p_N+(1-lambda)*p_H;
a_H = rho_H*a_H(-1)+epsilon_H;
a_N = rho_N*a_N(-1)+kappa*epsilon_N;
c = h*c(-1)+ystar-h*ystar(-1)+(((1-h)*(2*(1-alpha)-1)*(1-eta))/(2*alpha-1+eta))*q;
r = rstar+e(+1)-e+epsilon_uip;
s = s(-1)+pi_H-pi_F;
q = Psi_F-(1-alpha*(1-lambda))*s-lambda*p_N+lambda*p_H;
q = q(-1)+e-e(-1)+pistar-pi;
Psi_F = Psi_F(-1)+e+pistar-pi_F;
pi = (1-lambda)*pi_H+lambda*pi_N-(1-lambda)*alpha*(s-s(-1));
ystar = rho_ystar*ystar(-1)+epsilon_ystar;
pistar = rho_pistar*pistar(-1)+epsilon_pistar;
rstar = rho_rstar*rstar(-1)+epsilon_rstar;
r = rho_r*r(-1)+(1-rho_r)*(psi_a*y+psi_b*pi+psi_c*e)+epsilon_r;
m = (sigma*(c-h*c(-1)))/((1-h)*phi)-r/phi;
end;

initval;
y=0;
pi=0;
pi_H=0;
pi_N=0;
mc_H=0;
mc_N=0;
a_H=0;
a_N=0;
c=0;
e=0;
q=0;
s=0;
p_N=0;
r=0;
ystar=0;
rstar=0;
pistar=0;
g=0;
Psi_F=0;
pi_F=0;
m = 0;
p_H = 0;
epsilon_H=0;
epsilon_N=0;
epsilon_uip=0;
epsilon_ystar=0;
epsilon_pistar=0;
epsilon_rstar=0;
epsilon_g=0;
epsilon_r=0;
end;

steady;
check;
model_diagnostics;
不求最好,只求更好!

报纸
Star_Rudy 发表于 2014-3-29 15:58:56
我现在遇到的会不会不是BK条件问题啊,而是矩阵不满秩问题啊?那是不是意味着不是方程问题,而是参数取值问题?  
不求最好,只求更好!

地板
Star_Rudy 发表于 2014-3-29 16:04:01
EIGENVALUES:
         Modulus             Real        Imaginary

       7.804e-18        7.804e-18                0
       4.302e-14        4.302e-14                0
          0.3182           0.3182                0
             0.5              0.5                0
             0.5              0.5                0
             0.5              0.5                0
          0.7071            0.625           0.3307
          0.7071            0.625          -0.3307
          0.7071            0.625           0.3307
          0.7071            0.625          -0.3307
             0.8              0.8                0
             0.8              0.8                0
             0.8              0.8                0
             0.8              0.8                0
          0.9054           0.9054                0
               1                1                0
           1.204            1.204                0
            2.02             2.02                0
            2.02             2.02                0
       1.475e+16        1.475e+16                0
       8.313e+47        8.313e+47                0


There are 5 eigenvalue(s) larger than 1 in modulus
for 6 forward-looking variable(s)
最新的里面出现了特征值为1。。。这怎么解释,怎么办呢?
不求最好,只求更好!

7
yuanxinqiang 发表于 2014-3-29 19:05:45
把论文也放上来,以便有能力帮助你的老师、专家和同学帮助你。

8
Star_Rudy 发表于 2014-3-29 19:40:25
不求最好,只求更好!

9
Star_Rudy 发表于 2014-3-29 19:44:08
有的特征值很小啊,趋于0就不稳定了吧,但是程序中的特征值是哪个矩阵的特征值呢,这个方程中的矩阵可以去逆吗?
不求最好,只求更好!

10
yuanxinqiang 发表于 2014-3-29 20:00:49
Star_Rudy 发表于 2014-3-29 19:44
有的特征值很小啊,趋于0就不稳定了吧,但是程序中的特征值是哪个矩阵的特征值呢,这个方程中的矩阵可以去逆 ...
计算机做数值计算时,有个tol值,小于该值时计算机认做是0.

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-7 07:44