added in manual a section on how to use steady_state_model block with
initval and endval for deterministic models. Added test cases for deterministic models.time-shift
parent
31f6831b09
commit
eab165d3ee
|
@ -2569,6 +2569,15 @@ function returning several arguments:
|
|||
Dynare will automatically generate a steady state file using the
|
||||
information provided in this block.
|
||||
|
||||
@customhead{Steady state file for deterministic models}
|
||||
|
||||
@code{steady_state_model} block works also with deterministic
|
||||
models. An @code{initval} block and, when necessary, an @code{endval}
|
||||
block, is used to set the value of the exogenous variables. Each
|
||||
@code{initval} or @code{endval} block must be followed by @code{steady}
|
||||
to execute the function created by @code{steady_state_model} and set the
|
||||
initial, respectively terminal, steady state.
|
||||
|
||||
@examplehead
|
||||
|
||||
@example
|
||||
|
|
|
@ -125,7 +125,13 @@ MODFILES = \
|
|||
second_order/ds1.mod \
|
||||
second_order/ds2.mod \
|
||||
ep/rbc.mod \
|
||||
ep/linear.mod
|
||||
ep/linear.mod \
|
||||
deterministic_simulations/deterministic_model_purely_forward.mod \
|
||||
deterministic_simulations/rbc_det1.mod \
|
||||
deterministic_simulations/rbc_det2.mod \
|
||||
deterministic_simulations/rbc_det3.mod \
|
||||
deterministic_simulations/rbc_det4.mod \
|
||||
deterministic_simulations/rbc_det5.mod
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(MODFILES) \
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
var y i pi rbar ;
|
||||
|
||||
varexo r tauw taus taua gn;
|
||||
|
||||
parameters khia khiw khis phipi phiy taubs taubw tauba w sigma psi kappa alpha mu beta teta;
|
||||
|
||||
teta = 12.7721;
|
||||
sigma = 1.1599;
|
||||
beta = 0.9970;
|
||||
alpha = 0.7747;
|
||||
mu = 0.9030;
|
||||
taubs = 0.05;
|
||||
taubw = 0.02;
|
||||
tauba = 0;
|
||||
w = 1.5692;
|
||||
phipi = 1.5;
|
||||
phiy = 0.5/4;
|
||||
|
||||
khia = (1-beta)/(1-tauba);
|
||||
khiw = 1/(1-taubw);
|
||||
khis = 1/(1+taubs);
|
||||
psi = 1/(sigma + w);
|
||||
kappa = (1-alpha)*(1-alpha*beta)*(sigma+w)/(alpha*(1+w*teta));
|
||||
|
||||
model(linear);
|
||||
y = y(+1)-sigma*(i-pi(+1)-r)+(gn-gn(+1))+(sigma)^-1*khis*(taus(+1)-taus)+sigma*khia*taua;
|
||||
|
||||
pi=kappa*y+kappa*psi*(khiw*tauw+khis*taus-sigma*gn)+beta*pi(+1);
|
||||
|
||||
i=max(0,r+phipi*pi+phiy*y);
|
||||
|
||||
rbar = -((kappa*phipi+(1-beta*mu)*phiy)*sigma^-1*khia*taus)/((1-mu+sigma^-1*phiy)*(1-beta*mu)+kappa*sigma^-1*(phipi-mu))
|
||||
- (((1-mu)*kappa*psi*phipi+sigma^-1*mu*kappa*psi*phiy)*khiw*tauw)/((1-mu+sigma^-1*phiy)*(1-beta*mu)+kappa*sigma*(phipi-mu))
|
||||
-(kappa*sigma*(1-mu)*(sigma^-1-psi)*phipi+((1-mu)*(1-beta*mu)-kappa*psi*mu)*phiy)*(gn-sigma^-1*khis*taus)/((1-mu-sigma^-1*phiy)*(1-beta*mu)+kappa*sigma^-1*(phipi-mu));
|
||||
|
||||
end;
|
||||
|
||||
initval;
|
||||
y=0;
|
||||
i=-log(beta);
|
||||
pi=0;
|
||||
rbar = 0;
|
||||
end;
|
||||
|
||||
steady;
|
||||
check;
|
||||
|
||||
shocks;
|
||||
var r;
|
||||
periods 1:9;
|
||||
values -0.0104;
|
||||
end;
|
||||
|
||||
simul(periods=2100);
|
|
@ -0,0 +1,75 @@
|
|||
var Capital, Output, Labour, Consumption, Efficiency, efficiency, ExpectedTerm;
|
||||
|
||||
varexo EfficiencyInnovation;
|
||||
|
||||
parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma2;
|
||||
|
||||
beta = 0.9900;
|
||||
theta = 0.3570;
|
||||
tau = 2.0000;
|
||||
alpha = 0.4500;
|
||||
psi = -0.1000;
|
||||
delta = 0.0200;
|
||||
rho = 0.8000;
|
||||
effstar = 1.0000;
|
||||
sigma2 = 0;
|
||||
|
||||
model(block,bytecode,cutoff=0);
|
||||
|
||||
// Eq. n°1:
|
||||
efficiency = rho*efficiency(-1) + EfficiencyInnovation;
|
||||
|
||||
// Eq. n°2:
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
|
||||
// Eq. n°3:
|
||||
Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi);
|
||||
|
||||
// Eq. n°4:
|
||||
Capital = Output-Consumption + (1-delta)*Capital(-1);
|
||||
|
||||
// Eq. n°5:
|
||||
((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi);
|
||||
|
||||
// Eq. n°6:
|
||||
(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption = ExpectedTerm(1);
|
||||
|
||||
// Eq. n°7:
|
||||
ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+(1-delta));
|
||||
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
efficiency = EfficiencyInnovation/(1-rho);
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
|
||||
Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
|
||||
Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/Efficiency)^psi-alpha)/(1-alpha))^(1/psi);
|
||||
Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
|
||||
% Compute steady state share of capital.
|
||||
ShareOfCapital=alpha/(alpha+(1-alpha)*Labour_per_unit_of_Capital^psi);
|
||||
|
||||
% Compute steady state of the endogenous variables.
|
||||
Labour=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)*Output_per_unit_of_Labour^(1-psi)));
|
||||
Consumption=Consumption_per_unit_of_Labour*Labour;
|
||||
Capital=Labour/Labour_per_unit_of_Capital;
|
||||
Output=Output_per_unit_of_Capital*Capital;
|
||||
ExpectedTerm=beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)
|
||||
*(alpha*((Output/Capital)^(1-psi))+1-delta);
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
ik = varlist_indices('Capital',M_.endo_names);
|
||||
CapitalSS = oo_.steady_state(ik);
|
||||
|
||||
histval;
|
||||
Capital(0) = CapitalSS/2;
|
||||
end;
|
||||
|
||||
simul(periods=300);
|
||||
|
||||
rplot Consumption;
|
||||
rplot Capital;
|
|
@ -0,0 +1,75 @@
|
|||
var Capital, Output, Labour, Consumption, Efficiency, efficiency, ExpectedTerm;
|
||||
|
||||
varexo EfficiencyInnovation;
|
||||
|
||||
parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma2;
|
||||
|
||||
beta = 0.9900;
|
||||
theta = 0.3570;
|
||||
tau = 2.0000;
|
||||
alpha = 0.4500;
|
||||
psi = -0.1000;
|
||||
delta = 0.0200;
|
||||
rho = 0.8000;
|
||||
effstar = 1.0000;
|
||||
sigma2 = 0;
|
||||
|
||||
model(block,bytecode,cutoff=0);
|
||||
|
||||
// Eq. n°1:
|
||||
efficiency = rho*efficiency(-1) + EfficiencyInnovation;
|
||||
|
||||
// Eq. n°2:
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
|
||||
// Eq. n°3:
|
||||
Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi);
|
||||
|
||||
// Eq. n°4:
|
||||
Capital = Output-Consumption + (1-delta)*Capital(-1);
|
||||
|
||||
// Eq. n°5:
|
||||
((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi);
|
||||
|
||||
// Eq. n°6:
|
||||
(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption = ExpectedTerm(1);
|
||||
|
||||
// Eq. n°7:
|
||||
ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+(1-delta));
|
||||
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
|
||||
Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
|
||||
Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/effstar)^psi-alpha)/(1-alpha))^(1/psi);
|
||||
Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
|
||||
% Compute steady state share of capital.
|
||||
ShareOfCapital=alpha/(alpha+(1-alpha)*Labour_per_unit_of_Capital^psi);
|
||||
|
||||
% Compute steady state of the endogenous variables.
|
||||
Labour=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)*Output_per_unit_of_Labour^(1-psi)));
|
||||
Consumption=Consumption_per_unit_of_Labour*Labour;
|
||||
Capital=Labour/Labour_per_unit_of_Capital;
|
||||
Output=Output_per_unit_of_Capital*Capital;
|
||||
Efficiency=effstar;
|
||||
efficiency=0;
|
||||
ExpectedTerm=beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)
|
||||
*(alpha*((Output/Capital)^(1-psi))+1-delta);
|
||||
LagrangeMultiplier=0;
|
||||
end;
|
||||
|
||||
//steady;
|
||||
|
||||
shocks;
|
||||
var EfficiencyInnovation;
|
||||
periods 1;
|
||||
values -0.1;
|
||||
end;
|
||||
|
||||
simul(periods=300);
|
||||
|
||||
rplot Consumption;
|
||||
rplot Capital;
|
|
@ -0,0 +1,75 @@
|
|||
var Capital, Output, Labour, Consumption, Efficiency, efficiency, ExpectedTerm;
|
||||
|
||||
varexo EfficiencyInnovation;
|
||||
|
||||
parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma2;
|
||||
|
||||
beta = 0.9900;
|
||||
theta = 0.3570;
|
||||
tau = 2.0000;
|
||||
alpha = 0.4500;
|
||||
psi = -0.1000;
|
||||
delta = 0.0200;
|
||||
rho = 0.8000;
|
||||
effstar = 1.0000;
|
||||
sigma2 = 0;
|
||||
|
||||
model(block,bytecode,cutoff=0);
|
||||
|
||||
// Eq. n°1:
|
||||
efficiency = rho*efficiency(-1) + EfficiencyInnovation;
|
||||
|
||||
// Eq. n°2:
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
|
||||
// Eq. n°3:
|
||||
Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi);
|
||||
|
||||
// Eq. n°4:
|
||||
Capital = Output-Consumption + (1-delta)*Capital(-1);
|
||||
|
||||
// Eq. n°5:
|
||||
((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi);
|
||||
|
||||
// Eq. n°6:
|
||||
(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption = ExpectedTerm(1);
|
||||
|
||||
// Eq. n°7:
|
||||
ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+(1-delta));
|
||||
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
|
||||
Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
|
||||
Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/effstar)^psi-alpha)/(1-alpha))^(1/psi);
|
||||
Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
|
||||
% Compute steady state share of capital.
|
||||
ShareOfCapital=alpha/(alpha+(1-alpha)*Labour_per_unit_of_Capital^psi);
|
||||
|
||||
% Compute steady state of the endogenous variables.
|
||||
Labour=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)*Output_per_unit_of_Labour^(1-psi)));
|
||||
Consumption=Consumption_per_unit_of_Labour*Labour;
|
||||
Capital=Labour/Labour_per_unit_of_Capital;
|
||||
Output=Output_per_unit_of_Capital*Capital;
|
||||
Efficiency=effstar;
|
||||
efficiency=0;
|
||||
ExpectedTerm=beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)
|
||||
*(alpha*((Output/Capital)^(1-psi))+1-delta);
|
||||
LagrangeMultiplier=0;
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
shocks;
|
||||
var EfficiencyInnovation;
|
||||
periods 4, 5, 6, 7, 8;
|
||||
values 0.04, 0.05, 0.06, 0.07, 0.08;
|
||||
end;
|
||||
|
||||
simul(periods=300);
|
||||
|
||||
rplot Consumption;
|
||||
rplot Capital;
|
|
@ -0,0 +1,78 @@
|
|||
var Capital, Output, Labour, Consumption, Efficiency, efficiency, ExpectedTerm;
|
||||
|
||||
varexo EfficiencyInnovation;
|
||||
|
||||
parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma2;
|
||||
|
||||
beta = 0.9900;
|
||||
theta = 0.3570;
|
||||
tau = 2.0000;
|
||||
alpha = 0.4500;
|
||||
psi = -0.1000;
|
||||
delta = 0.0200;
|
||||
rho = 0.8000;
|
||||
effstar = 1.0000;
|
||||
sigma2 = 0;
|
||||
|
||||
model(block,bytecode,cutoff=0);
|
||||
|
||||
// Eq. n°1:
|
||||
efficiency = rho*efficiency(-1) + EfficiencyInnovation;
|
||||
|
||||
// Eq. n°2:
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
|
||||
// Eq. n°3:
|
||||
Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi);
|
||||
|
||||
// Eq. n°4:
|
||||
Capital = Output-Consumption + (1-delta)*Capital(-1);
|
||||
|
||||
// Eq. n°5:
|
||||
((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi);
|
||||
|
||||
// Eq. n°6:
|
||||
(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption = ExpectedTerm(1);
|
||||
|
||||
// Eq. n°7:
|
||||
ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+(1-delta));
|
||||
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
efficiency = EfficiencyInnovation/(1-rho);
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
|
||||
Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
|
||||
Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/Efficiency)^psi-alpha)/(1-alpha))^(1/psi);
|
||||
Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
|
||||
% Compute steady state share of capital.
|
||||
ShareOfCapital=alpha/(alpha+(1-alpha)*Labour_per_unit_of_Capital^psi);
|
||||
|
||||
% Compute steady state of the endogenous variables.
|
||||
Labour=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)*Output_per_unit_of_Labour^(1-psi)));
|
||||
Consumption=Consumption_per_unit_of_Labour*Labour;
|
||||
Capital=Labour/Labour_per_unit_of_Capital;
|
||||
Output=Output_per_unit_of_Capital*Capital;
|
||||
ExpectedTerm=beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)
|
||||
*(alpha*((Output/Capital)^(1-psi))+1-delta);
|
||||
end;
|
||||
|
||||
initval;
|
||||
EfficiencyInnovation = 0;
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
endval;
|
||||
EfficiencyInnovation = (1-rho)*log(1.05);
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
simul(periods=300);
|
||||
|
||||
rplot Consumption;
|
||||
rplot Capital;
|
|
@ -0,0 +1,84 @@
|
|||
var Capital, Output, Labour, Consumption, Efficiency, efficiency, ExpectedTerm;
|
||||
|
||||
varexo EfficiencyInnovation;
|
||||
|
||||
parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma2;
|
||||
|
||||
beta = 0.9900;
|
||||
theta = 0.3570;
|
||||
tau = 2.0000;
|
||||
alpha = 0.4500;
|
||||
psi = -0.1000;
|
||||
delta = 0.0200;
|
||||
rho = 0.8000;
|
||||
effstar = 1.0000;
|
||||
sigma2 = 0;
|
||||
|
||||
model(block,bytecode,cutoff=0);
|
||||
|
||||
// Eq. n°1:
|
||||
efficiency = rho*efficiency(-1) + EfficiencyInnovation;
|
||||
|
||||
// Eq. n°2:
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
|
||||
// Eq. n°3:
|
||||
Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi);
|
||||
|
||||
// Eq. n°4:
|
||||
Capital = Output-Consumption + (1-delta)*Capital(-1);
|
||||
|
||||
// Eq. n°5:
|
||||
((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi);
|
||||
|
||||
// Eq. n°6:
|
||||
(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption = ExpectedTerm(1);
|
||||
|
||||
// Eq. n°7:
|
||||
ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+(1-delta));
|
||||
|
||||
end;
|
||||
|
||||
steady_state_model;
|
||||
efficiency = EfficiencyInnovation/(1-rho);
|
||||
Efficiency = effstar*exp(efficiency);
|
||||
Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
|
||||
Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
|
||||
Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/Efficiency)^psi-alpha)/(1-alpha))^(1/psi);
|
||||
Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
||||
|
||||
% Compute steady state share of capital.
|
||||
ShareOfCapital=alpha/(alpha+(1-alpha)*Labour_per_unit_of_Capital^psi);
|
||||
|
||||
% Compute steady state of the endogenous variables.
|
||||
Labour=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)*Output_per_unit_of_Labour^(1-psi)));
|
||||
Consumption=Consumption_per_unit_of_Labour*Labour;
|
||||
Capital=Labour/Labour_per_unit_of_Capital;
|
||||
Output=Output_per_unit_of_Capital*Capital;
|
||||
ExpectedTerm=beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)
|
||||
*(alpha*((Output/Capital)^(1-psi))+1-delta);
|
||||
end;
|
||||
|
||||
initval;
|
||||
EfficiencyInnovation = 0;
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
endval;
|
||||
EfficiencyInnovation = (1-rho)*log(1.05);
|
||||
end;
|
||||
|
||||
steady;
|
||||
|
||||
shocks;
|
||||
var EfficiencyInnovation;
|
||||
periods 1:5;
|
||||
values 0;
|
||||
end;
|
||||
|
||||
simul(periods=300);
|
||||
|
||||
rplot Consumption;
|
||||
rplot Capital;
|
Loading…
Reference in New Issue