Exogenous variables

Hello,

I’ve implemented a two country dsge model, which comprises 26 endogenous variables.

My question is the following: How do I have to specify the exogenous variables?

By now, I’ve not defined anything about them, neither initial values, nor a process. The simulation runs and gives IRFs, though.

I can’t really explain why dynare can solve and simulate the model.

Would be glad, if someone can help.

Thanks

Which command are you using? By default, Dynare starts with initial values of 0. If you are using a nonlinear model with deterministic simulations, Dynare will not show you IRFs but rather the trajectory from 0 back to the steady state.

It’s a linear model with 26 endogenous, 5 deterministic exogenous variables and 1 shock. I’m just wondering why dynare can compute IRFs to the shock, though I didn’t specify any process for the deterministic exogenous variables. So by default the initial values are zero? Does dynare also by default assume some kind of process for the deterministic variables, e.g. treat them as constants?

To answer your question, I need to see the mod-file

% Model variables

var q ds wr_h wr_f h_h h_f c_h c_f r_h r_f pi_h pi_f pi_a_h pi_b_f q_a_h q_a_f q_b_h q_b_f mc_h mc_f y_h y_f dr_hat_h dr_hat_f tr_hat_h tr_hat_f;
varexo xiI tau_h tau_f g_h g_f z_h z_f tau_ss;

% Parameter specifications

mu =2;
beta = 0.95;
kappa=0.02;
c_y = 0.8;
g_y = 0.2;
n = 0.1;
omega = 0.185;
sigma = 0.66;
phi = 1.58;
psi = 0.02;

% Model specifications, here: 26 equations

model(linear);

wr_h = muh_h + c_h + tau_ss/(1 - tau_ss)tau_h; % L1: Real wages in Home
wr_f = mu
h_f + c_f + tau_ss/(1 - tau_ss)tau_f; % L2: Real wages in Foreign
c_h = c_h(+1) - (r_h - pi_h(+1)); % L3: Consumption path Home
c_f = c_f(+1) - (r_f - pi_f(+1)); % L4: Consumption path Foreign
c_f - c_h = q; % L5: Risk sharing
pi_a_h = beta
pi_a_h(+1) + kappa
mc_h; % L6: NKPC for in Home produced good A
pi_b_f = betapi_b_f(+1) + kappamc_f; % L7: NKPC for in Foreign produced good B
mc_h = wr_h - q_a_h - z_h; % L8: Marginal cost Home
mc_f = wr_f - q_b_f - z_f; % L9: Marginal cost Foreign
y_h = z_h + h_h; % L10: Production function Home
y_f = z_f + h_f; % L11: Production function Foreign
pi_a_h = q_a_h - q_a_h(-1) + pi_h; % L12: Producer price inflation for good A in Home
pi_b_f = q_b_f - q_b_f(-1) + pi_f; % L13: Producer price inflation for good A in Foreign
q + q_a_h = q_a_f; % L14: Law of one price
q + q_b_h = q_b_f; % L15: Law of one price
q_b_h - q_b_h(-1) = -ds + pi_f - pi_h + q_b_f - q_b_f(-1); % L16: Real exchange rate
0 = (1 - 2*(1-n)omega)xiI + (1 - (1-n)omega)q_a_h + (1-n)omegaq_b_h; % L17: Price index Home
0 = -(1 - 2
n
omega)xiI + (1 - nomega)q_b_f + nomega
q_a_f; % L18: Price index Foreign
beta
dr_hat_h(+1) + tr_hat_h + tau_ss*(tau_h + q_a_h + y_h) = dr_hat_h + g_yg_h + g_yq_a_h; % L19: Government budget constraint Home
betadr_hat_f(+1) + tr_hat_f + tau_ss(tau_f + q_b_f + y_f) = dr_hat_f + g_yg_f + g_yq_b_f; % L20: Government budget constraint Foreign
tr_hat_h = psidr_hat_h; % L21: Lump-sum taxation Home
tr_hat_f = psi
dr_hat_f; % L22: Lump-sum taxation Foreign
r_h = phipi_a_h; % L23: Monetary policy Home
r_f = phi
pi_b_f; % L24: Monetary policy Foreign
y_h = c_yxiI + (1-n)omega(c_yc_f - sigmac_yq) + sigma*(g_y - 1)q_a_h + (1 - (1-n)omega)c_yc_h + g_yg_h; % L25: Good market clearing Home
y_h+sigma
q_a_h=c_yxiI+(1-n)omega(c_yc_f-sigmac_yq)+(1-(1-n)omega)c_yc_h+g_y(g_h+sigmaq_a_h);
y_f = -c_y
xiI + nomega(c_yc_h + sigmac_yq) + sigma(g_y - 1)q_b_f + (1 - nomega)c_yc_f + g_yg_f; % L26: Good market clearing Foreign
y_f+sigma
q_b_f=-c_yxiI+nomega*(c_yc_h+c_ysigmaq)+(1-nomega)c_yc_f+g_y*(g_f+sigma*q_b_f);

end;

% Shock specifications
shocks;
var xiI; stderr 1;

end;

% Model simulation
stoch_simul(order = 1, irf = 20);

Any exogenous process you do not specify is assumed to be 0 as it has a 0 variance. Moreover, as it is an exogenous object, Dynare simply takes it as given. It does not have to appear in any equation.

Thanks a lot!