Compare commits

...

2 Commits

Author SHA1 Message Date
Stéphane Adjemian (Argos) a260f9af17
Remove Q3_steadystate routine, use steady_state_model block instead.
Also remove the (useless) initval block.

=> Faster evaluation of the likelihood.
2023-10-12 18:28:27 +02:00
Stéphane Adjemian (Argos) c378472dca
Remove switch parameter DDYN. 2023-10-12 18:03:10 +02:00
2 changed files with 162 additions and 325 deletions

273
Q3.mod
View File

@ -20,7 +20,7 @@ varexo
E_EPS_C E_EPS_ETA E_EPS_ETAM E_EPS_ETAX E_EPS_EX E_EPS_IG E_EPS_INOMW E_EPS_L E_EPS_LOL E_EPS_M E_EPS_PPI E_EPS_PW E_EPS_RPREME E_EPS_RPREMK E_EPS_TR E_EPS_W E_EPS_Y E_EPS_YW E_EPS_G;
parameters
A1E A2E ALPHAX ALPHAE ALPHAGE BETAE BGADJ1 BGADJ2 BGTAR DELTAE DELTAGE DGEX DGIM DGPM DGPX DDYN E_EX_INOMW E_EX_R E_EX_RW G1E GAMI2E GAMIE GAMLE GAMPE GAMPME GAMPXE GAMWE GP0 GPCPI0 GPOP0 GPW0 GSLAG GVECM
A1E A2E ALPHAX ALPHAE ALPHAGE BETAE BGADJ1 BGADJ2 BGTAR DELTAE DELTAGE DGEX DGIM DGPM DGPX E_EX_INOMW E_EX_R E_EX_RW G1E GAMI2E GAMIE GAMLE GAMPE GAMPME GAMPXE GAMWE GP0 GPCPI0 GPOP0 GPW0 GSLAG GVECM
GFLAG GLAGFLAG IGLAGFLAG IGFLAG TRFLAG TWFLAG GEXOFLAG IGEXOFLAG TREXOFLAG GAMIFLAG SLCFLAG GSN GTFP0 GY0 GYW0 HABE HABLE IGSLAG IGVECM ILAGE INFLAGE IG1E IGSN ISN KAPPAE L0 LOL LYWY0 OMEGE RHOCE RHOETA RHOETAM RHOETAX RHOEXE RHOGE RHOIG RHOL0 RHOLE RHOLOL RHOPPI1 RHOPPI2 RHOPPI3 RHOPPI4 RHOPCPM RHOPWPX RHORPE RHORPK RHOUCAP0 RII RIP RIX RPI RPP RPX RXI RXP RXX RXY RPREME RPREMK SE SFPE SFPME SFPXE SFWE SIGC SIGEXE SIGIME SLC SSC TAUE TP THETAE TINFE TR1E TRSN RHOTR TYE1 TYE2 TVAT TW0 TW1 UCAP0 WRLAG ZETE interestq_exog inflationannual_exog;
//estimated parameters (mean posterior distribution)
@ -103,7 +103,6 @@ TW1 = 0.8;
ZETE = 0.4000;
// SWITCHES for various simulations
DDYN = 1;
GFLAG=1;
GLAGFLAG=1;
IGLAGFLAG=1;
@ -121,7 +120,6 @@ A1E = 0.0669; % this is actually a function of the steady state and es
OMEGE = 1.4836; % this is actually a function of the steady state and estimated parameters to get L0=0.65;
GSN = 0.203;
IGSN = 0.025;
//ISN = 0.17; % used only when DDYN=0, and RPREMK would be a function of ISN;
GPCPI0 = 0;
GP0 = 0.005;
GPW0 = GP0;
@ -505,119 +503,172 @@ E_LWS = E_LL-E_LYWR;
end;
initval;
E_BGYN = 2.4000;
E_BWRY = 0;
E_CLCSN = 0.3862;
E_DBGYN = 0;
E_LER = 0;
E_ETA = 0.9000;
E_GC = 0.0030;
E_GCL = 0.0041;
E_GCLC = 0.0030;
E_GCNLC = 0.0030;
E_GE = 0;
E_GEX = 0.0030;
E_GEXL = 0.0115;
E_GG = 0.0030;
E_GGL = 0.0041;
E_GI = 0.0030;
E_GIG = 0.0030;
E_GIL = 0.0041;
E_GIM = 0.0030;
E_GIML = 0.0115;
E_GK = 0.0030;
E_GKG = 0.0030;
E_GL = 0;
E_GSN = 0.2030;
E_GTAX = 0.0080;
E_GTFP =0.0024;
E_GTFPUCAP = 0.0013;
E_GTR = 0.0030;
E_GUC = 0;
E_GUCAP = 0;
E_GWRY = 0;
E_GY = 0.0030;
E_GYL = 0.0041;
E_GYPOT = 0.0030;
E_GYW = 0.0030;
E_INOM = 0.0090;
E_INOMW = 0.0090;
E_LL = -0.4308;
E_LL0 = -0.4308;
E_LBGYN = 0.8755;
E_LCSN = -0.5381;
E_LCLCSN = -0.9514;
E_LCNLCSN = -0.3702;
E_LEXYN = -1.9576;
E_LGSN = -1.5945;
E_LIGSN = -3.6889;
E_LIMYN = -1.9576;
E_LIK = -3.5359;
E_LIKG = -4.0963;
E_LISN = -1.6706;
E_LOL =0;
E_LPCP =0 ;
E_LPMP =0;
E_LPXP = 0;
E_LTRYN = -1.7809;
E_LUCYN = 4.9955;
E_LUCLCYN = 3.9815;
E_LYGAP = 0;
E_LYKPPI = -1.8653;
E_LYWR = 0.3285;
E_LYWY = 0;
E_MRY = 0.9964;
E_PHI = 0.0050;
E_PHIC = 0.0050;
E_PHIPI = 0;
E_PHIM = 0.0050;
E_PHIML = 0.0010;
E_PHIW = 0.0050;
E_PHIX = 0.0050;
E_PHIXL = 0.0010;
E_Q = 1.0000;
E_R = 0.0040;
E_TAXYN = -0.0142;
E_TBYN = 0;
E_TRTAXYN = 0.1827;
E_TRW = 0.3600;
E_TRYN = 0.1685;
E_TW = 0.2000;
E_UCAP = 1.0000;
E_UCAP0 = 1.0000;
E_VL = 19.0679;
E_VLLC = 8.8600;
E_WPHI = 0.0080;
E_WRPHI = 0.0030;
E_WS = 0.4680;
E_WSW = 0.2808;
E_ZEPS_C =0;
E_ZEPS_ETA =0;
E_ZEPS_ETAM =0;
E_ZEPS_ETAX =0;
E_ZEPS_EX =0;
E_ZEPS_G =0;
E_ZEPS_IG =0;
E_ZEPS_L =0;
E_ZEPS_M =0;
E_ZEPS_PPI =0;
E_ZEPS_RPREME=0;
E_ZEPS_RPREMK=0;
E_ZEPS_TR =0;
E_ZEPS_W =0;
E_ZPHIT =0.0050;
E_LCY =-0.5381;
E_LGY =-1.5945;
E_LWS =-0.7593;
interest = 0;
inflation = 0;
outputgap =0;
steady_state_model;
E_EX_RW = E_EX_INOMW - GPW0;
E_EX_R = 1/BETAE-1;
E_EX_RW = E_EX_R;
E_EX_INOMW = E_EX_RW + GPW0;
GTFP0 = (ALPHAE+ALPHAGE-1)/ALPHAE*GY0-(2-ALPHAE-ALPHAGE)/ALPHAE*GPCPI0;
GYW0 = GY0;
DELTAKE = (DELTAE+GPOP0);
DELTAKGE = (DELTAGE+GPOP0);
SWE = SE;
E_ETA =(1-TAUE);
E_GC = GY0;
E_GCL = GY0+GPOP0;
E_GCLC = GY0;
E_GCNLC = GY0;
E_GE = GP0 - GPW0;
E_GER =0;
E_GEX=GY0;
E_GEXL = GY0+GPOP0+DGEX;
E_GG = GY0;
E_GGL = GY0+GPOP0;
E_GI = GY0+GPCPI0;
E_GIG = E_GI;
E_GIL = GY0+GPCPI0+GPOP0;
E_GIM = GY0;
E_GIML = GY0+GPOP0+DGIM;
E_GK = E_GI;
E_GKG = E_GI;
E_GL = 0;
E_GPOPA = GPOP0;
E_GTFP = (ALPHAE+ALPHAGE-1)/ALPHAE*GY0-(2-ALPHAE-ALPHAGE)/ALPHAE*GPCPI0;
E_GTFPUCAP = ALPHAE*E_GTFP;
E_GUC = 0;
E_GUCAP = 0;
E_GWRY = 0;
E_GY = GY0;
E_GYL = GY0+GPOP0;
E_GTAX = GY0+GP0;
E_GTR = GY0;
E_GYPOT = GY0;
E_GYW = GYW0;
E_INOM = E_EX_R+GP0;
E_INOMW = E_EX_INOMW;
E_LOL = 0;
E_BWRY = (E_EX_RW - E_EX_R)/RPREME;
TBYN = (-E_INOM+GPOP0+GP0+GY0)*E_BWRY;
E_TBYN = TBYN;
E_LYWY = LYWY0;
YWY = exp(LYWY0);
E_LIK = log(DELTAKE+GY0+GPCPI0);
E_LIKG = log(DELTAKGE+GY0+GPCPI0);
IK = (DELTAKE+GY0+GPCPI0);
YKN = (E_EX_R+RPREMK+DELTAE)/(1-TP)/(1-TAUE)/(1-ALPHAE);
E_LYKPPI = log(YKN);
ISN = IK/YKN;
E_L = L0;
E_LL = log(L0);
E_LL0 = log(L0);
LER0 = 0;
E_ER = exp(LER0);
E_LER = LER0;
PMP = (E_ER^ALPHAX);
E_LPMP = log(PMP);
PCP = (SE+(1-SE)*PMP^(1-SIGIME))^(1/(1-SIGIME));
E_LPCP = log(PCP);
E_LPCPM0 = E_LPCP-E_LPMP;
PXP = 1;
E_LPXP = 0;
IMYN = (1-SE)*exp(E_LPCP-E_LPMP)^(SIGIME-1)*(1-TBYN);
E_LIMYN = log(IMYN);
EXYN = (1-SE)*exp(E_LER*(ALPHAX*SE))^SIGEXE*exp(E_LYWY)^ALPHAX;
E_LEXYN = log(EXYN);
E_LIGSN = log(IGSN);
E_ZEPS_IG = 0;
E_LGSN = log(GSN);
E_LISN = log(ISN);
CSN = 1-(IGSN+GSN+ISN+TBYN);
E_LCSN = log(CSN);
E_LBGYN=log(BGTAR);
YWR = 1/((1-TAUE)*ALPHAE/L0*(1+E_LOL));
E_LYWR = log(YWR);
E_LWPTU = 0;
E_TW = 0.2;
E_TRW = TRSN;
E_WS = exp(E_LL-E_LYWR);
E_TAXYN = (E_INOM-GP0-GY0-GPOP0)*BGTAR+IGSN+GSN+TRSN*E_WS-(E_TW+SSC)*E_L/YWR -TP*(1-E_L/YWR)-TVAT*CSN;
CLCSN = ((1-E_TW-SSC)*E_L/YWR + TRSN*E_WS - E_TAXYN)/(1+TVAT);
E_LCLCSN = log(CLCSN);
CNLCSN = (CSN-CLCSN*SLC*SLCFLAG)/(1-SLC*SLCFLAG);
E_LCNLCSN = log(CNLCSN);
UCTERM = ((1-SLCFLAG*SLC)*(CNLCSN*(1-HABE))^(-SIGC)+SLCFLAG*SLC*CLCSN^(-SIGC))/((1-SLCFLAG*SLC)*(CNLCSN*(1-HABE))^(1-SIGC)+SLCFLAG*SLC*CLCSN^(1-SIGC));
A = (THETAE-1)/THETAE*(1-E_TW-SSC)/(1+TVAT)*E_WS*UCTERM/L0;
OMEGE = A/(KAPPAE*(L0*(1-HABLE))^(KAPPAE-1)+A*(L0*(1-HABLE))^KAPPAE);
UCYN = (CNLCSN*(1-HABE))^(-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(1-SIGC);
E_LUCYN = log(UCYN);
UCLCYN = (CLCSN)^(-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(1-SIGC);
E_LUCLCYN = log(UCLCYN);
E_VL = (CNLCSN*(1-HABE))^(1-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(-SIGC)*KAPPAE*OMEGE*(L0*(1-HABLE))^(KAPPAE-1);
E_VLLC = (CLCSN)^(1-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(-SIGC)*KAPPAE*OMEGE*(L0*(1-HABLE))^(KAPPAE-1);
E_LYGAP = 0 ;
E_LYGAP1 = 0 ;
E_LCY = E_LCSN-E_LPCP;
E_LGY = E_LGSN-E_LPCP;
E_LWS = log(E_WS);
E_CLCSN = exp(E_LCLCSN);
E_TRYN = E_TRW*exp(E_LL-E_LYWR);
E_LTRYN = log(E_TRYN);
E_TRTAXYN = E_TRW*exp(E_LL-E_LYWR) - E_TAXYN;
E_BGYN = exp(E_LBGYN);
E_GSN = exp(E_LGSN);
E_WSW = (1-E_TW-SSC)*E_WS;
E_MRY = (1+E_INOM)^(-ZETE);
E_PHI = GP0;
E_PHIC = GP0;
E_PHIPI = GPCPI0;
E_PHIM = GP0;
E_PHIML = GP0+DGPM;
E_PHIW = GPW0;
E_PHIX = GP0;
E_PHIXL = GP0+DGPX;
E_Q = 1;
E_R = E_EX_R;
E_TI = 0;
E_UCAP = UCAP0;
E_UCAP0 = UCAP0;
E_WPHI = GP0+GY0;
E_WRPHI = GY0;
E_ZEPS_C = 0;
E_ZEPS_CLC = 0;
E_ZEPS_EQ = 0;
E_ZEPS_ETA = 0;
E_ZEPS_ETAM = 0;
E_ZEPS_ETAX = 0;
E_ZEPS_EX = 0;
E_ZEPS_G = 0;
E_ZEPS_I = 0;
E_ZEPS_IM = 0;
E_ZEPS_L = 0;
E_ZEPS_M = 0;
E_ZEPS_PC = 0;
E_ZEPS_PPI = 0;
E_ZEPS_POP = 0;
E_ZEPS_PX = 0;
E_ZEPS_RPREME = 0;
E_ZEPS_RPREMK = 0;
E_ZEPS_SLC = 0;
E_ZEPS_TFP = 0;
E_ZEPS_TR = 0;
E_ZEPS_W = 0;
E_ZEPS_Y = 0;
E_ZEPS_YW = 0;
E_DBGYN = 0;
E_ZEPS_YGAP = 0;
E_ZPHIT = GP0;
interest = ((E_INOM+1)^4-interestq_exog^4)/interestq_exog^4;
inflationq = (4*E_PHIC+1-inflationannual_exog)/inflationannual_exog;
inflation = (1/4)*(inflationq+inflationq+inflationq+inflationq);
outputgap = E_LYGAP;
A1E = (1-TAUE)*(1-ALPHAE)*exp(E_LYKPPI)/UCAP0;
end;
steady;
check;
// set exogenous shocks NOT jointly estimated with the DSGE model
shocks;
var E_EPS_INOMW;

View File

@ -1,214 +0,0 @@
function [ys,params,check1] = Q3_steadystate(junk, exs, M_, options_)
for j=1:size(M_.param_names,1)
eval([M_.param_names{j},' = M_.params(j);'])
end
check1=0;
if isempty(DDYN), DDYN=1; end
E_EX_RW = E_EX_INOMW - GPW0;
E_EX_R = 1/BETAE-1;
E_EX_RW = E_EX_R;
E_EX_INOMW = E_EX_RW + GPW0;
GTFP0 = (ALPHAE+ALPHAGE-1)/ALPHAE*GY0-(2-ALPHAE-ALPHAGE)/ALPHAE*GPCPI0;
GYW0 = GY0;
DELTAKE = (DELTAE+GPOP0);
DELTAKGE = (DELTAGE+GPOP0);
M_.params(strcmp('E_EX_RW', M_.param_names)) = E_EX_RW;
M_.params(strcmp('GYW0', M_.param_names)) = GYW0;
M_.params(strcmp('GTFP0', M_.param_names)) = GTFP0;
SWE=SE;
E_ETA =(1-TAUE);
E_GC = GY0;
E_GCL = GY0+GPOP0;
E_GCLC = GY0;
E_GCNLC = GY0;
E_GE = GP0 - GPW0;
E_GER =0;
E_GEX=GY0;
E_GEXL = GY0+GPOP0+DGEX;
E_GG =GY0;
E_GGL =GY0+GPOP0;
E_GI =GY0+GPCPI0;
E_GIG = E_GI;
E_GIL =GY0+GPCPI0+GPOP0;
E_GIM=GY0;
E_GIML = GY0+GPOP0+DGIM;
E_GK =E_GI;
E_GKG =E_GI;
E_GL =0;
E_GPOPA = GPOP0;
E_GTFP = (ALPHAE+ALPHAGE-1)/ALPHAE*GY0-(2-ALPHAE-ALPHAGE)/ALPHAE*GPCPI0;
E_GTFPUCAP = ALPHAE*E_GTFP;
E_GUC = 0;
E_GUCAP = 0;
E_GWRY = 0;
E_GY=GY0;
E_GYL=GY0+GPOP0;
E_GTAX = GY0+GP0;
E_GTR = GY0;
E_GYPOT=GY0;
E_GYW=GYW0;
E_INOM = E_EX_R+GP0;
E_INOMW =E_EX_INOMW;
E_LOL = 0;
E_BWRY = (E_EX_RW - E_EX_R)/RPREME;
TBYN = (-E_INOM+GPOP0+GP0+GY0)*E_BWRY;
E_TBYN=TBYN;
E_LYWY = LYWY0;
M_.params(strcmp('LYWY0', M_.param_names)) = LYWY0;
YWY = exp(LYWY0);
E_LIK = log(DELTAKE+GY0+GPCPI0);
E_LIKG = log(DELTAKGE+GY0+GPCPI0);
IK = (DELTAKE+GY0+GPCPI0);
if DDYN==0,
E_LYKPPI = E_LIK-log(ISN);
YKN = IK/ISN;
else
YKN = (E_EX_R+RPREMK+DELTAE)/(1-TP)/(1-TAUE)/(1-ALPHAE);
E_LYKPPI=log(YKN);
ISN=IK/YKN;
M_.params(strcmp('ISN', M_.param_names)) = ISN;
end
E_L =L0;
E_LL =log(L0);
E_LL0 =log(L0);
LER0=0;
E_ER=exp(LER0);
E_LER = LER0;
PMP = (E_ER^ALPHAX);
E_LPMP = log(PMP);
PCP = (SE+(1-SE)*PMP^(1-SIGIME))^(1/(1-SIGIME));
E_LPCP= log(PCP);
E_LPCPM0 = E_LPCP-E_LPMP;
PXP = 1; %PCP^(S0*(1-SXDE));
E_LPXP = 0; %(1-SXDE)*S0*E_LPCP;
IMYN = (1-SE)*exp(E_LPCP-E_LPMP)^(SIGIME-1)*(1-TBYN);
E_LIMYN = log(IMYN);
EXYN = (1-SE)*exp(E_LER*(ALPHAX*SE))^SIGEXE*exp(E_LYWY)^ALPHAX;
E_LEXYN = log(EXYN);
E_LIGSN = log(IGSN);
E_ZEPS_IG = 0;
E_LGSN = log(GSN);
E_LISN = log(ISN);
CSN = 1-(IGSN+GSN+ISN+TBYN);
M_.params(strcmp('CSN', M_.param_names)) = CSN;
E_LCSN = log(CSN);
E_LBGYN=log(BGTAR);
YWR = 1/((1-TAUE)*ALPHAE/L0*(1+E_LOL)) ;
E_LYWR = log(YWR) ;
E_LWPTU = 0;
E_TW = 0.2;
M_.params(strcmp('TW0', M_.param_names)) = TW0;
E_TRW = TRSN;
E_WS = exp(E_LL-E_LYWR);
E_TAXYN = (E_INOM-GP0-GY0-GPOP0)*BGTAR+IGSN+GSN+TRSN*E_WS ...
-(E_TW+SSC)*E_L/YWR -TP*(1-E_L/YWR) -TVAT*CSN;
CLCSN = ((1-E_TW-SSC)*E_L/YWR + TRSN*E_WS - E_TAXYN)/(1+TVAT);
E_LCLCSN = log(CLCSN);
CNLCSN = (CSN-CLCSN*SLC*SLCFLAG)/(1-SLC*SLCFLAG);
E_LCNLCSN = log(CNLCSN);
UCTERM = ((1-SLCFLAG*SLC)*(CNLCSN*(1-HABE))^(-SIGC)+SLCFLAG*SLC*CLCSN^(-SIGC))/((1-SLCFLAG*SLC)*(CNLCSN*(1-HABE))^(1-SIGC)+SLCFLAG*SLC*CLCSN^(1-SIGC));
A = (THETAE-1)/THETAE*(1-E_TW-SSC)/(1+TVAT)*E_WS*UCTERM/L0;
OMEGE = A/(KAPPAE*(L0*(1-HABLE))^(KAPPAE-1)+A*(L0*(1-HABLE))^KAPPAE);
UCYN = (CNLCSN*(1-HABE))^(-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(1-SIGC);
E_LUCYN = log(UCYN);
UCLCYN = (CLCSN)^(-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(1-SIGC);
E_LUCLCYN = log(UCLCYN);
E_VL = (CNLCSN*(1-HABE))^(1-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(-SIGC)*KAPPAE*OMEGE*(L0*(1-HABLE))^(KAPPAE-1);
E_VLLC = (CLCSN)^(1-SIGC)*(1-OMEGE*(L0*(1-HABLE))^KAPPAE)^(-SIGC)*KAPPAE*OMEGE*(L0*(1-HABLE))^(KAPPAE-1);
E_LYGAP = 0 ;
E_LYGAP1 = 0 ;
E_LCY = E_LCSN-E_LPCP;
E_LGY = E_LGSN-E_LPCP;
E_LWS = log(E_WS);
E_CLCSN = exp(E_LCLCSN);
E_TRYN = E_TRW*exp(E_LL-E_LYWR) ;
E_LTRYN = log(E_TRYN);
E_TRTAXYN = E_TRW*exp(E_LL-E_LYWR) - E_TAXYN;
E_BGYN = exp(E_LBGYN);
E_GSN = exp(E_LGSN);
E_WSW = (1-E_TW-SSC)*E_WS;
E_MRY = (1+E_INOM)^(-ZETE);
E_PHI=GP0;
E_PHIC=GP0;
E_PHIPI=GPCPI0;
E_PHIM=GP0;
E_PHIML=GP0+DGPM;
E_PHIW=GPW0;
E_PHIX=GP0;
E_PHIXL=GP0+DGPX;
E_Q = 1 ;
E_R = E_EX_R;
E_TI = 0;
E_UCAP =UCAP0;
E_UCAP0 =UCAP0;
E_WPHI = GP0+GY0;
E_WRPHI = GY0;
E_ZEPS_C = 0;
E_ZEPS_CLC = 0;
E_ZEPS_EQ = 0;
E_ZEPS_ETA = 0;
E_ZEPS_ETAM = 0;
E_ZEPS_ETAX = 0;
E_ZEPS_EX = 0;
E_ZEPS_G = 0;
E_ZEPS_I = 0;
E_ZEPS_IM = 0;
E_ZEPS_L = 0;
E_ZEPS_M = 0;
E_ZEPS_PC = 0;
E_ZEPS_PPI = 0;
E_ZEPS_POP = 0;
E_ZEPS_PX = 0;
E_ZEPS_RPREME = 0;
E_ZEPS_RPREMK = 0;
E_ZEPS_SLC = 0;
E_ZEPS_TFP = 0;
E_ZEPS_TR = 0;
E_ZEPS_W = 0;
E_ZEPS_Y = 0;
E_ZEPS_YW = 0;
E_DBGYN = 0;
E_ZEPS_YGAP = 0;
E_ZPHIT = GP0;
% modelbase variables
interest = ((E_INOM+1)^4-interestq_exog^4)/interestq_exog^4;
inflationq = (4*E_PHIC+1-inflationannual_exog)/inflationannual_exog;
inflation = (1/4)*(inflationq+inflationq+inflationq+inflationq);
outputgap = E_LYGAP;
ys=zeros(M_.orig_endo_nbr,1);
for k=1:M_.orig_endo_nbr
ys(k,1)=eval(M_.endo_names{k});
end
A1E = (1-TAUE)*(1-ALPHAE)*exp(E_LYKPPI)/UCAP0;
M_.params(strcmp('A1E', M_.param_names)) = A1E;
M_.params(strcmp('OMEGE', M_.param_names)) = OMEGE;
if DDYN==0
RPREMK = (1-TAUE)*(1-ALPHAE)*(1-TP)*exp(E_LYKPPI) - DELTAE-E_EX_R;
M_.params(strcmp('RPREMK', M_.param_names)) = RPREMK;
end
params = M_.params;