jmaih / RISE_toolbox

Solution and estimation of Markov Switching Rational Expectations / DSGE Models
BSD 3-Clause "New" or "Revised" License
103 stars 76 forks source link

stability condition #140

Closed narmindavoudi closed 4 years ago

narmindavoudi commented 4 years ago

Hi dear Mr Maih, I had some problem in checking stability condition if you remember, you implied that the stability criterion used in constant-parameter DSGE models is the Blanchard-Kahn conditions, I figured out that if I can solve my model with constant parameters in dynare, so I can solve it in RISE too, so I have solved the model in dynare, and Blanchard-Kahn condition was satisfied, but it is still unstable in RISE, is that possible, if yes, what's wrong in my model using RISE? Thank you really for your time spending to answer my questions, sincerely Narmin

jmaih commented 4 years ago

Hi,

Could you share the dynare file?

Cheers,

J.

narmindavoudi commented 4 years ago

Hi Mr. Maih Hope you are ok. As you suggested for sharing dynare code to compare with rise code in stability problem, I will send you dynare code in attachment, I will be appreciated if you answer me the question: "why in dynare code the Blanchard-Khan condition is satisfied, while the same code in Rise is still unstable?" sincerely Narmin


From: Junior Maih notifications@github.com Sent: Friday, July 24, 2020 4:28 PM To: jmaih/RISE_toolbox RISE_toolbox@noreply.github.com Cc: narmindavoudi ndavudi@hotmail.com; Author author@noreply.github.com Subject: Re: [jmaih/RISE_toolbox] stability condition (#140)

Hi,

Could you share the dynare file?

Cheers,

J.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/jmaih/RISE_toolbox/issues/140#issuecomment-663503837, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALNCA3O2MIPIGFW6XI6PCLDR5FZNPANCNFSM4O77LW5Q.

//Endogenous variables var lt wt mt it xct sct qt kt rkt mct ct bt ypt yt at xgt sgt gt oil tt fr dc lamdact lamdagt nuct nugt mdot pai vt eB ep rbt ;
//Exogenous variables varexo eG eoil eep eA eev et eeB ; //parameters parameters sigmal sigmac sigmam betta phi1 delta alpha rhoa rhoeB rhot rhogov rhooil rhov kappac1 kappac2 kappac3 kappac4 kappac5 kappac6 kappac7 nuc1 nuc2 nuc3 nuc4 kappag1 kappag2 kappag3 kappag4 kappag5 kappag6 kappag7 nug1 nug2 nug3 nug4 zeta1 zeta2 zeta3 zeta4 zeta5 zeta6 zeta7 zeta8 zeta9 zeta10 zeta11 zeta12 zeta13 zeta14 zeta15 zeta16 thetac thetag rhoc rhog rho_mpi rho_my rho_m rhoep ; sigmac =1.1660;
sigmal =2.8930;
sigmam =1.0720;
delta =0.0420;
betta =0.9700;
phi1 =9.0520;
thetac =0.7000;
alpha =0.5570;
rhoa =0.8500;
thetag =0.7000;
rhog =0.7000;
rhot =0.7636;
rhoc =0.8000;
nuc1 =1.6809;
nuc2 =1.6809;
nuc3 =1.7760;
nuc4 =0.7760;
nug1 =1.6809;
nug2 =1.6809;
nug3 =1.6793;
nug4 =0.6790;
kappac1 =0.1285;
kappac2 =0.1285;
kappac3 =0.1358;
kappac4 =0.05933; kappac5 =1.3330;
kappac6 =0.07646;
kappac7 =0.07646;
kappag1 =0.2039;
kappag2 =0.2039;
kappag3 =0.2037;
kappag4 =0.08235;
kappag5 =1.2370;
kappag6 =0.1213;
kappag7 =0.1213;
zeta1 =0.8295;
zeta2 =0.1895;
zeta3 =0.01725;
zeta4 =0.0057;
zeta5 =0.00035;
zeta6 =0.0202;
zeta7 =0.008;
zeta8 =0.0046;
zeta9 =0.1786;
zeta10 =0.00126;
zeta11 =0.0029;
zeta12 =0.0018;
zeta13 =0.00075;
zeta14 =0.0413;
zeta15 =0.0027;
zeta16 =0.0027;
rhooil =0.7420;
rhov =0.554;
rhoeB =0.850; rhoep =0.500;
rhogov =0.6380;
rho_mpi =-1.447; rho_my =-2.342; rho_m =0.410;
// observable variables //varobs gt, mdot, ct, yt, pai, oil, it

/ %steady_state_model
%srk=0.0729
%sq=1 %sk=21.2328 %sw=1.4698
%syp=3.3045
%sc=2.3122 %sg=0.92488 %soil=0.8258 %si=0.8918 %sxc=0.69366 %sxg=0.2775 %smc=1/mu %smc=0.77196 %sfr/smt=0.54 %sdc/smt=0.46 %soil/sfr=0.13 %soil/sdc=0.03 %sb=9.6414 %sm=8.2558
/ model(linear);

lt=(1/sigmal)wt-(sigmac/sigmal)xct; //[name='houshold labor supply'] mt=(sigmac/sigmam)xct-(1/(0.07287sigmam))(rbt); //[name='houshold money demand'] it=(1/(phi1(1+betta)))qt+(1/(1+betta))it(-1)+(betta/(1+betta))it(+1); //[name='investment equation'] rbt=pai(+1)+sigmacxct(+1)-sigmacxct+eB-eB(+1); //[name='euler equation with preference shock 2'] qt=pai(+1)-rbt+betta(1-delta)qt(+1)+(1-(1-delta)betta)rkt(+1); //[name='q-tobin equation'] kt(+1)=(1-delta)kt+deltait; //[name='capital stock formation'] rkt=wt+lt-kt; //[name='capital return equation'] mct=-at+alphawt+(1-alpha)rkt; //[name='marginal cost'] xct=(1/(1-thetac))ct-(thetac/(1-thetac))sct(-1); //[name='household deep habit adjusted consumption equation'] sct=rhocsct(-1)+(1-rhoc)ct; //[name='household habit stock equation'] xgt=(1/(1-thetag))gt-(thetag/(1-thetag))sgt(-1); //[name='government deep habit adjusted consumption equation'] sgt=rhogsgt(-1)+(1-rhog)gt; //[name='government consumption habit stock'] ypt=(1.37)at+(1.37)(1-alpha)kt+(1.37)alphalt; //[name='production function'] mt=0.46dc+0.54fr; //[name='monetary bese'] fr=0.9609fr(-1)-0.9609pai+0.185oil; //[name='central bank foregin assets equation'] ypt+0.25oil=0.7ct+0.27it+0.28gt; //[name='income identity'] yt=0.8ypt+0.2oil; //[name='income'] mdot=rho_mmdot(-1)+rho_mpipai+rho_myyt+vt; //[name='monetary policy rule'] mdot=mt-mt(-1)+pai; //[name='money growth rate'] 0.9248gt+9.939bt(-1)+9.939rbt(-1)-13.588pai=0.2485tt+3.7976dc-3.6491dc(-1)+9.6414bt+0.8258oil; //[name='composited central bank and government constrait'] tt=rhotyt+et; //[name='tax'] lamdact=kappac1xct-kappac2xct(+1)+kappac3lamdact(+1)+kappac4nuct(+1)-kappac5mct-kappac6eB+kappac7eB(+1); //[name='future benefit'] nuct=nuc1xct-nuc2xct(+1)+nuc3lamdact(+1)+nuc4nuct(+1)-eB+eB(+1); lamdagt=kappag1xct-kappag2xct(+1)+kappag3lamdagt(+1)+kappag4nugt(+1)-kappag5mct-kappag6eB+kappag7eB(+1); //[name='future benefit'] nugt=nug1xct-nug2xct(+1)+nug3lamdagt(+1)+nug4nugt(+1)-eB+eB(+1); pai=zeta1pai(-1)+zeta2pai(+1)-zeta3xct-zeta4xgt+zeta5it+zeta6sct(-1)+zeta7sgt(-1)+zeta8xct(+1)+zeta9mct-zeta10nuct(+1)-zeta11lamdact(+1)-zeta12lamdagt(+1)-zeta13nugt(+1)-zeta14ep-zeta15eB(+1)+zeta16eB; [name='philips curve under deep habit'] // Shock processes at=rhoaat(-1)+eA; // [name='technology shock'] eB=rhoeBeB(-1)+eeB; //[name='prefernce shock'] gt=rhogovgt(-1)+eG; //[name='government expenditure shock'] vt=rhovvt(-1)+eev; //[name='monetary shock'] oil=rhooiloil(-1)+eoil; //[name='oil revenue shock'] ep=rhoepep(-1)+eep;%markup shock end;

steady; check;

shocks; var eG; stderr 0.01; var eoil; stderr 0.01; var eep; stderr 0.01; var eA; stderr 0.01; var eev; stderr 0.01; var et; stderr 0.01; var eeB; stderr 0.01; end; stoch_simul(irf=60);

jmaih commented 4 years ago

Hi Narmin,

There is no disagreement between RISE and Dynare. The attachment below contains what you need to translate from dynare and solve the model in RISE.

NoProblem.zip

Cheers,

J.