Encoding fixes.
parent
75a929051f
commit
7e7f57d7d1
|
@ -132,7 +132,7 @@ oo_.surgibbs.(model_name).posterior.mean.beta = (sum(oo_.surgibbs.(model_name).b
|
||||||
oo_.surgibbs.(model_name).posterior.variance.beta = cov(oo_.surgibbs.(model_name).betadraws);
|
oo_.surgibbs.(model_name).posterior.variance.beta = cov(oo_.surgibbs.(model_name).betadraws);
|
||||||
|
|
||||||
% Yhat
|
% Yhat
|
||||||
oo_.surgibbs.(model_name).Yhat = X*oo_.surgibbs.(model_name).posterior.mean.beta;
|
oo_.surgibbs.(model_name).Yhat = X*oo_.surgibbs.(model_name).posterior.mean.beta;
|
||||||
|
|
||||||
% Residuals
|
% Residuals
|
||||||
oo_.surgibbs.(model_name).resid = Y - oo_.surgibbs.(model_name).Yhat;
|
oo_.surgibbs.(model_name).resid = Y - oo_.surgibbs.(model_name).Yhat;
|
||||||
|
@ -181,7 +181,7 @@ if ~options_.noprint
|
||||||
sprintf('No. Equations: %d', oo_.surgibbs.(model_name).neqs), ...
|
sprintf('No. Equations: %d', oo_.surgibbs.(model_name).neqs), ...
|
||||||
sprintf('No. Independent Variables: %d', size(X, 2)), ...
|
sprintf('No. Independent Variables: %d', size(X, 2)), ...
|
||||||
sprintf('Observations: %d', oo_.surgibbs.(model_name).dof)};
|
sprintf('Observations: %d', oo_.surgibbs.(model_name).dof)};
|
||||||
|
|
||||||
afterward = {sprintf('s^2: %f', oo_.surgibbs.(model_name).s2), sprintf('R^2: %f', oo_.surgibbs.(model_name).R2)};
|
afterward = {sprintf('s^2: %f', oo_.surgibbs.(model_name).s2), sprintf('R^2: %f', oo_.surgibbs.(model_name).R2)};
|
||||||
dyn_table(ttitle, preamble, afterward, param_names,...
|
dyn_table(ttitle, preamble, afterward, param_names,...
|
||||||
{'Posterior mean', 'Posterior std.'}, 4,...
|
{'Posterior mean', 'Posterior std.'}, 4,...
|
||||||
|
|
|
@ -1,223 +1,223 @@
|
||||||
// --+ options: json=compute +--
|
// --+ options: json=compute +--
|
||||||
|
|
||||||
/* REMARK
|
/* REMARK
|
||||||
** ------
|
** ------
|
||||||
**
|
**
|
||||||
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
||||||
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
||||||
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
||||||
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var
|
var
|
||||||
U2_Q_YED
|
U2_Q_YED
|
||||||
U2_G_YER
|
U2_G_YER
|
||||||
U2_STN
|
U2_STN
|
||||||
U2_ESTN
|
U2_ESTN
|
||||||
U2_EHIC
|
U2_EHIC
|
||||||
DE_Q_YED
|
DE_Q_YED
|
||||||
DE_G_YER
|
DE_G_YER
|
||||||
DE_EHIC
|
DE_EHIC
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
varexo
|
varexo
|
||||||
res_U2_Q_YED
|
res_U2_Q_YED
|
||||||
res_U2_G_YER
|
res_U2_G_YER
|
||||||
res_U2_STN
|
res_U2_STN
|
||||||
res_U2_ESTN
|
res_U2_ESTN
|
||||||
res_U2_EHIC
|
res_U2_EHIC
|
||||||
res_DE_Q_YED
|
res_DE_Q_YED
|
||||||
res_DE_G_YER
|
res_DE_G_YER
|
||||||
res_DE_EHIC
|
res_DE_EHIC
|
||||||
;
|
;
|
||||||
|
|
||||||
parameters
|
parameters
|
||||||
u2_q_yed_ecm_u2_q_yed_L1
|
u2_q_yed_ecm_u2_q_yed_L1
|
||||||
u2_q_yed_ecm_u2_stn_L1
|
u2_q_yed_ecm_u2_stn_L1
|
||||||
u2_q_yed_u2_g_yer_L1
|
u2_q_yed_u2_g_yer_L1
|
||||||
u2_q_yed_u2_stn_L1
|
u2_q_yed_u2_stn_L1
|
||||||
u2_g_yer_ecm_u2_q_yed_L1
|
u2_g_yer_ecm_u2_q_yed_L1
|
||||||
u2_g_yer_ecm_u2_stn_L1
|
u2_g_yer_ecm_u2_stn_L1
|
||||||
u2_g_yer_u2_q_yed_L1
|
u2_g_yer_u2_q_yed_L1
|
||||||
u2_g_yer_u2_g_yer_L1
|
u2_g_yer_u2_g_yer_L1
|
||||||
u2_g_yer_u2_stn_L1
|
u2_g_yer_u2_stn_L1
|
||||||
u2_stn_ecm_u2_q_yed_L1
|
u2_stn_ecm_u2_q_yed_L1
|
||||||
u2_stn_ecm_u2_stn_L1
|
u2_stn_ecm_u2_stn_L1
|
||||||
u2_stn_u2_q_yed_L1
|
u2_stn_u2_q_yed_L1
|
||||||
u2_stn_u2_g_yer_L1
|
u2_stn_u2_g_yer_L1
|
||||||
u2_estn_u2_estn_L1
|
u2_estn_u2_estn_L1
|
||||||
u2_ehic_u2_ehic_L1
|
u2_ehic_u2_ehic_L1
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1
|
de_q_yed_ecm_de_q_yed_L1
|
||||||
de_q_yed_ecm_u2_stn_L1
|
de_q_yed_ecm_u2_stn_L1
|
||||||
de_q_yed_de_g_yer_L1
|
de_q_yed_de_g_yer_L1
|
||||||
de_q_yed_u2_stn_L1
|
de_q_yed_u2_stn_L1
|
||||||
de_g_yer_ecm_de_q_yed_L1
|
de_g_yer_ecm_de_q_yed_L1
|
||||||
de_g_yer_ecm_u2_stn_L1
|
de_g_yer_ecm_u2_stn_L1
|
||||||
de_g_yer_de_q_yed_L1
|
de_g_yer_de_q_yed_L1
|
||||||
de_g_yer_de_g_yer_L1
|
de_g_yer_de_g_yer_L1
|
||||||
de_g_yer_u2_stn_L1
|
de_g_yer_u2_stn_L1
|
||||||
de_ehic_de_ehic_L1
|
de_ehic_de_ehic_L1
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
||||||
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
||||||
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
||||||
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
||||||
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
||||||
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
||||||
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
||||||
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
||||||
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
||||||
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
||||||
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
||||||
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
||||||
u2_estn_u2_estn_L1 = 1 ;
|
u2_estn_u2_estn_L1 = 1 ;
|
||||||
u2_ehic_u2_ehic_L1 = 1 ;
|
u2_ehic_u2_ehic_L1 = 1 ;
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
||||||
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
||||||
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
||||||
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
||||||
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
||||||
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
||||||
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
||||||
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
||||||
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
de_ehic_de_ehic_L1 = 1 ;
|
de_ehic_de_ehic_L1 = 1 ;
|
||||||
|
|
||||||
|
|
||||||
model(linear);
|
model(linear);
|
||||||
[name = 'eq1']
|
[name = 'eq1']
|
||||||
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_Q_YED ;
|
+ res_U2_Q_YED ;
|
||||||
[name = 'eq2']
|
[name = 'eq2']
|
||||||
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_G_YER ;
|
+ res_U2_G_YER ;
|
||||||
[name = 'eq3']
|
[name = 'eq3']
|
||||||
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ res_U2_STN ;
|
+ res_U2_STN ;
|
||||||
[name = 'eq4']
|
[name = 'eq4']
|
||||||
U2_ESTN = u2_estn_u2_estn_L1 * U2_ESTN(-1)
|
U2_ESTN = u2_estn_u2_estn_L1 * U2_ESTN(-1)
|
||||||
+ res_U2_ESTN ;
|
+ res_U2_ESTN ;
|
||||||
[name = 'eq5']
|
[name = 'eq5']
|
||||||
U2_EHIC = u2_ehic_u2_ehic_L1 * U2_EHIC(-1)
|
U2_EHIC = u2_ehic_u2_ehic_L1 * U2_EHIC(-1)
|
||||||
+ res_U2_EHIC ;
|
+ res_U2_EHIC ;
|
||||||
[name = 'eq6']
|
[name = 'eq6']
|
||||||
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_Q_YED ;
|
+ res_DE_Q_YED ;
|
||||||
[name = 'eq7']
|
[name = 'eq7']
|
||||||
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
||||||
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_G_YER ;
|
+ res_DE_G_YER ;
|
||||||
[name = 'eq8']
|
[name = 'eq8']
|
||||||
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
shocks;
|
shocks;
|
||||||
var res_U2_Q_YED = 0.005;
|
var res_U2_Q_YED = 0.005;
|
||||||
var res_U2_G_YER = 0.005;
|
var res_U2_G_YER = 0.005;
|
||||||
var res_U2_STN = 0.005;
|
var res_U2_STN = 0.005;
|
||||||
var res_U2_ESTN = 0.005;
|
var res_U2_ESTN = 0.005;
|
||||||
var res_U2_EHIC = 0.005;
|
var res_U2_EHIC = 0.005;
|
||||||
var res_DE_Q_YED = 0.005;
|
var res_DE_Q_YED = 0.005;
|
||||||
var res_DE_G_YER = 0.005;
|
var res_DE_G_YER = 0.005;
|
||||||
var res_DE_EHIC = 0.005;
|
var res_DE_EHIC = 0.005;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
NSIMS = 1;
|
NSIMS = 1;
|
||||||
|
|
||||||
options_.noprint = 1;
|
options_.noprint = 1;
|
||||||
calibrated_values = M_.params;
|
calibrated_values = M_.params;
|
||||||
verbatim;
|
verbatim;
|
||||||
Sigma_e = M_.Sigma_e;
|
Sigma_e = M_.Sigma_e;
|
||||||
end;
|
end;
|
||||||
options_.bnlms.set_dynare_seed_to_default = false;
|
options_.bnlms.set_dynare_seed_to_default = false;
|
||||||
|
|
||||||
nparampool = length(M_.params);
|
nparampool = length(M_.params);
|
||||||
BETA = zeros(NSIMS, nparampool);
|
BETA = zeros(NSIMS, nparampool);
|
||||||
for i=1:NSIMS
|
for i=1:NSIMS
|
||||||
firstobs = rand(3, length(M_.endo_names));
|
firstobs = rand(3, length(M_.endo_names));
|
||||||
M_.params = calibrated_values;
|
M_.params = calibrated_values;
|
||||||
M_.Sigma_e = Sigma_e;
|
M_.Sigma_e = Sigma_e;
|
||||||
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
||||||
simdata = simdata(simdata.dates(5001:6000));
|
simdata = simdata(simdata.dates(5001:6000));
|
||||||
names=regexp(simdata.name, 'res\w*');
|
names=regexp(simdata.name, 'res\w*');
|
||||||
idxs = [];
|
idxs = [];
|
||||||
for j=1:length(names)
|
for j=1:length(names)
|
||||||
if isempty(names{j})
|
if isempty(names{j})
|
||||||
idxs = [idxs j];
|
idxs = [idxs j];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
simdata = sur(simdata{idxs});
|
simdata = sur(simdata{idxs});
|
||||||
BETA(i, :) = M_.params';
|
BETA(i, :) = M_.params';
|
||||||
oo_ = rmfield(oo_, 'sur');
|
oo_ = rmfield(oo_, 'sur');
|
||||||
end
|
end
|
||||||
|
|
||||||
if NSIMS > 1
|
if NSIMS > 1
|
||||||
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
||||||
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
good = [-0.826686196809409
|
good = [-0.826686196809409
|
||||||
-0.346753563700393
|
-0.346753563700393
|
||||||
0.063013991583949
|
0.063013991583949
|
||||||
0.074802596658698
|
0.074802596658698
|
||||||
-0.017440119721953
|
-0.017440119721953
|
||||||
-0.127090614348862
|
-0.127090614348862
|
||||||
0.025293280404460
|
0.025293280404460
|
||||||
0.524290302468866
|
0.524290302468866
|
||||||
-0.117611206771440
|
-0.117611206771440
|
||||||
-0.027776224547132
|
-0.027776224547132
|
||||||
-0.156590828735908
|
-0.156590828735908
|
||||||
0.054039707976331
|
0.054039707976331
|
||||||
0.276257666502046
|
0.276257666502046
|
||||||
1.000417289621684
|
1.000417289621684
|
||||||
0.999336865129450
|
0.999336865129450
|
||||||
-0.803258152338916
|
-0.803258152338916
|
||||||
-0.309594948488168
|
-0.309594948488168
|
||||||
0.051602756230521
|
0.051602756230521
|
||||||
0.039275481081030
|
0.039275481081030
|
||||||
0.024897596371662
|
0.024897596371662
|
||||||
-0.096310133845385
|
-0.096310133845385
|
||||||
-0.022630284059365
|
-0.022630284059365
|
||||||
0.461683465196454
|
0.461683465196454
|
||||||
-0.110278113383114
|
-0.110278113383114
|
||||||
1.000000000000000];
|
1.000000000000000];
|
||||||
if max(abs(BETA' - good)) > 1e-14
|
if max(abs(BETA' - good)) > 1e-14
|
||||||
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:nparampool
|
for i=1:nparampool
|
||||||
figure
|
figure
|
||||||
hold on
|
hold on
|
||||||
title(strrep(M_.param_names(i,:), '_', '\_'));
|
title(strrep(M_.param_names(i,:), '_', '\_'));
|
||||||
histogram(BETA(:,i),50);
|
histogram(BETA(:,i),50);
|
||||||
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
||||||
hold off
|
hold off
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,222 +1,222 @@
|
||||||
// --+ options: json=compute +--
|
// --+ options: json=compute +--
|
||||||
|
|
||||||
/* REMARK
|
/* REMARK
|
||||||
** ------
|
** ------
|
||||||
**
|
**
|
||||||
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
||||||
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
||||||
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
||||||
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var
|
var
|
||||||
U2_Q_YED
|
U2_Q_YED
|
||||||
U2_G_YER
|
U2_G_YER
|
||||||
U2_STN
|
U2_STN
|
||||||
U2_ESTN
|
U2_ESTN
|
||||||
U2_EHIC
|
U2_EHIC
|
||||||
DE_Q_YED
|
DE_Q_YED
|
||||||
DE_G_YER
|
DE_G_YER
|
||||||
DE_EHIC
|
DE_EHIC
|
||||||
;
|
;
|
||||||
|
|
||||||
varexo
|
varexo
|
||||||
res_U2_Q_YED
|
res_U2_Q_YED
|
||||||
res_U2_G_YER
|
res_U2_G_YER
|
||||||
res_U2_STN
|
res_U2_STN
|
||||||
res_DE_Q_YED
|
res_DE_Q_YED
|
||||||
res_DE_G_YER
|
res_DE_G_YER
|
||||||
res_DE_EHIC
|
res_DE_EHIC
|
||||||
;
|
;
|
||||||
|
|
||||||
parameters
|
parameters
|
||||||
u2_q_yed_ecm_u2_q_yed_L1
|
u2_q_yed_ecm_u2_q_yed_L1
|
||||||
u2_q_yed_ecm_u2_stn_L1
|
u2_q_yed_ecm_u2_stn_L1
|
||||||
u2_q_yed_u2_g_yer_L1
|
u2_q_yed_u2_g_yer_L1
|
||||||
u2_q_yed_u2_stn_L1
|
u2_q_yed_u2_stn_L1
|
||||||
u2_g_yer_ecm_u2_q_yed_L1
|
u2_g_yer_ecm_u2_q_yed_L1
|
||||||
u2_g_yer_ecm_u2_stn_L1
|
u2_g_yer_ecm_u2_stn_L1
|
||||||
u2_g_yer_u2_q_yed_L1
|
u2_g_yer_u2_q_yed_L1
|
||||||
u2_g_yer_u2_g_yer_L1
|
u2_g_yer_u2_g_yer_L1
|
||||||
u2_g_yer_u2_stn_L1
|
u2_g_yer_u2_stn_L1
|
||||||
u2_stn_ecm_u2_q_yed_L1
|
u2_stn_ecm_u2_q_yed_L1
|
||||||
u2_stn_ecm_u2_stn_L1
|
u2_stn_ecm_u2_stn_L1
|
||||||
u2_stn_u2_q_yed_L1
|
u2_stn_u2_q_yed_L1
|
||||||
u2_stn_u2_g_yer_L1
|
u2_stn_u2_g_yer_L1
|
||||||
u2_estn_u2_estn_L1
|
u2_estn_u2_estn_L1
|
||||||
u2_ehic_u2_ehic_L1
|
u2_ehic_u2_ehic_L1
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1
|
de_q_yed_ecm_de_q_yed_L1
|
||||||
de_q_yed_ecm_u2_stn_L1
|
de_q_yed_ecm_u2_stn_L1
|
||||||
de_q_yed_de_g_yer_L1
|
de_q_yed_de_g_yer_L1
|
||||||
de_q_yed_u2_stn_L1
|
de_q_yed_u2_stn_L1
|
||||||
de_g_yer_ecm_de_q_yed_L1
|
de_g_yer_ecm_de_q_yed_L1
|
||||||
de_g_yer_ecm_u2_stn_L1
|
de_g_yer_ecm_u2_stn_L1
|
||||||
de_g_yer_de_q_yed_L1
|
de_g_yer_de_q_yed_L1
|
||||||
de_g_yer_de_g_yer_L1
|
de_g_yer_de_g_yer_L1
|
||||||
de_g_yer_u2_stn_L1
|
de_g_yer_u2_stn_L1
|
||||||
de_ehic_de_ehic_L1
|
de_ehic_de_ehic_L1
|
||||||
;
|
;
|
||||||
|
|
||||||
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
||||||
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
||||||
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
||||||
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
||||||
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
||||||
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
||||||
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
||||||
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
||||||
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
||||||
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
||||||
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
||||||
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
||||||
u2_estn_u2_estn_L1 = 1 ;
|
u2_estn_u2_estn_L1 = 1 ;
|
||||||
u2_ehic_u2_ehic_L1 = 1 ;
|
u2_ehic_u2_ehic_L1 = 1 ;
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
||||||
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
||||||
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
||||||
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
||||||
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
||||||
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
||||||
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
||||||
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
||||||
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
de_ehic_de_ehic_L1 = 1 ;
|
de_ehic_de_ehic_L1 = 1 ;
|
||||||
|
|
||||||
|
|
||||||
model(linear);
|
model(linear);
|
||||||
[name = 'eq1']
|
[name = 'eq1']
|
||||||
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_Q_YED ;
|
+ res_U2_Q_YED ;
|
||||||
|
|
||||||
[name = 'eq2']
|
[name = 'eq2']
|
||||||
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_G_YER ;
|
+ res_U2_G_YER ;
|
||||||
|
|
||||||
[name = 'eq3']
|
[name = 'eq3']
|
||||||
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ res_U2_STN ;
|
+ res_U2_STN ;
|
||||||
|
|
||||||
[name = 'eq4']
|
[name = 'eq4']
|
||||||
U2_ESTN = 0 ;
|
U2_ESTN = 0 ;
|
||||||
|
|
||||||
[name = 'eq5']
|
[name = 'eq5']
|
||||||
U2_EHIC = 0 ;
|
U2_EHIC = 0 ;
|
||||||
|
|
||||||
[name = 'eq6']
|
[name = 'eq6']
|
||||||
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_Q_YED ;
|
+ res_DE_Q_YED ;
|
||||||
|
|
||||||
[name = 'eq7']
|
[name = 'eq7']
|
||||||
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
||||||
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_G_YER ;
|
+ res_DE_G_YER ;
|
||||||
|
|
||||||
[name = 'eq8']
|
[name = 'eq8']
|
||||||
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
shocks;
|
shocks;
|
||||||
var res_U2_Q_YED = 0.005;
|
var res_U2_Q_YED = 0.005;
|
||||||
var res_U2_G_YER = 0.005;
|
var res_U2_G_YER = 0.005;
|
||||||
var res_U2_STN = 0.005;
|
var res_U2_STN = 0.005;
|
||||||
var res_DE_Q_YED = 0.005;
|
var res_DE_Q_YED = 0.005;
|
||||||
var res_DE_G_YER = 0.005;
|
var res_DE_G_YER = 0.005;
|
||||||
var res_DE_EHIC = 0.005;
|
var res_DE_EHIC = 0.005;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
NSIMS = 1;
|
NSIMS = 1;
|
||||||
|
|
||||||
options_.noprint = 1;
|
options_.noprint = 1;
|
||||||
calibrated_values = M_.params;
|
calibrated_values = M_.params;
|
||||||
verbatim;
|
verbatim;
|
||||||
Sigma_e = M_.Sigma_e;
|
Sigma_e = M_.Sigma_e;
|
||||||
end;
|
end;
|
||||||
options_.bnlms.set_dynare_seed_to_default = false;
|
options_.bnlms.set_dynare_seed_to_default = false;
|
||||||
|
|
||||||
nparampool = length(M_.params);
|
nparampool = length(M_.params);
|
||||||
BETA = zeros(NSIMS, nparampool);
|
BETA = zeros(NSIMS, nparampool);
|
||||||
for i=1:NSIMS
|
for i=1:NSIMS
|
||||||
firstobs = rand(3, length(M_.endo_names));
|
firstobs = rand(3, length(M_.endo_names));
|
||||||
M_.params = calibrated_values;
|
M_.params = calibrated_values;
|
||||||
M_.Sigma_e = Sigma_e;
|
M_.Sigma_e = Sigma_e;
|
||||||
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
||||||
simdata = simdata(simdata.dates(5001:6000));
|
simdata = simdata(simdata.dates(5001:6000));
|
||||||
% fill zeroed-out variables with random data to ensure they are not being referenced
|
% fill zeroed-out variables with random data to ensure they are not being referenced
|
||||||
simdata.U2_EHIC = dseries(rand(1000, 1), simdata.firstdate, 'U2_EHIC');
|
simdata.U2_EHIC = dseries(rand(1000, 1), simdata.firstdate, 'U2_EHIC');
|
||||||
simdata.U2_ESTN = dseries(rand(1000, 1), simdata.firstdate, 'U2_ESTN');
|
simdata.U2_ESTN = dseries(rand(1000, 1), simdata.firstdate, 'U2_ESTN');
|
||||||
names = regexp(simdata.name, 'res\w*');
|
names = regexp(simdata.name, 'res\w*');
|
||||||
idxs = [];
|
idxs = [];
|
||||||
for j=1:length(names)
|
for j=1:length(names)
|
||||||
if isempty(names{j})
|
if isempty(names{j})
|
||||||
idxs = [idxs j];
|
idxs = [idxs j];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
simdata = sur(simdata{idxs});
|
simdata = sur(simdata{idxs});
|
||||||
BETA(i, :) = M_.params';
|
BETA(i, :) = M_.params';
|
||||||
oo_ = rmfield(oo_, 'sur');
|
oo_ = rmfield(oo_, 'sur');
|
||||||
end
|
end
|
||||||
|
|
||||||
if NSIMS > 1
|
if NSIMS > 1
|
||||||
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
||||||
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
good = [-0.806260229719792
|
good = [-0.806260229719792
|
||||||
-0.354371215026078
|
-0.354371215026078
|
||||||
0.067618717060638
|
0.067618717060638
|
||||||
0.088053231576354
|
0.088053231576354
|
||||||
-0.057161898696690
|
-0.057161898696690
|
||||||
-0.136999143481575
|
-0.136999143481575
|
||||||
0.052047088887385
|
0.052047088887385
|
||||||
0.524022502978068
|
0.524022502978068
|
||||||
-0.110211572532150
|
-0.110211572532150
|
||||||
-0.041415758049800
|
-0.041415758049800
|
||||||
-0.162997606880957
|
-0.162997606880957
|
||||||
0.091000830792721
|
0.091000830792721
|
||||||
0.281196660545012
|
0.281196660545012
|
||||||
1.000000000000000
|
1.000000000000000
|
||||||
1.000000000000000
|
1.000000000000000
|
||||||
-0.823354793011220
|
-0.823354793011220
|
||||||
-0.337521089381118
|
-0.337521089381118
|
||||||
0.025493177305917
|
0.025493177305917
|
||||||
0.059513905441361
|
0.059513905441361
|
||||||
0.016845886773011
|
0.016845886773011
|
||||||
-0.151537340795868
|
-0.151537340795868
|
||||||
0.004832174649536
|
0.004832174649536
|
||||||
0.430883913061161
|
0.430883913061161
|
||||||
-0.071743697511067
|
-0.071743697511067
|
||||||
1.000000000000000];
|
1.000000000000000];
|
||||||
if max(abs(BETA' - good)) > 1e-14
|
if max(abs(BETA' - good)) > 1e-14
|
||||||
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:nparampool
|
for i=1:nparampool
|
||||||
figure
|
figure
|
||||||
hold on
|
hold on
|
||||||
title(strrep(M_.param_names(i,:), '_', '\_'));
|
title(strrep(M_.param_names(i,:), '_', '\_'));
|
||||||
histogram(BETA(:,i),50);
|
histogram(BETA(:,i),50);
|
||||||
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
||||||
hold off
|
hold off
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,223 +1,223 @@
|
||||||
// --+ options: json=compute +--
|
// --+ options: json=compute +--
|
||||||
|
|
||||||
/* REMARK
|
/* REMARK
|
||||||
** ------
|
** ------
|
||||||
**
|
**
|
||||||
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
||||||
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
||||||
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
||||||
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var
|
var
|
||||||
U2_Q_YED
|
U2_Q_YED
|
||||||
U2_G_YER
|
U2_G_YER
|
||||||
U2_STN
|
U2_STN
|
||||||
U2_ESTN
|
U2_ESTN
|
||||||
U2_EHIC
|
U2_EHIC
|
||||||
DE_Q_YED
|
DE_Q_YED
|
||||||
DE_G_YER
|
DE_G_YER
|
||||||
DE_EHIC
|
DE_EHIC
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
varexo
|
varexo
|
||||||
res_U2_Q_YED
|
res_U2_Q_YED
|
||||||
res_U2_G_YER
|
res_U2_G_YER
|
||||||
res_U2_STN
|
res_U2_STN
|
||||||
res_U2_ESTN
|
res_U2_ESTN
|
||||||
res_U2_EHIC
|
res_U2_EHIC
|
||||||
res_DE_Q_YED
|
res_DE_Q_YED
|
||||||
res_DE_G_YER
|
res_DE_G_YER
|
||||||
res_DE_EHIC
|
res_DE_EHIC
|
||||||
;
|
;
|
||||||
|
|
||||||
parameters
|
parameters
|
||||||
u2_q_yed_ecm_u2_q_yed_L1
|
u2_q_yed_ecm_u2_q_yed_L1
|
||||||
u2_q_yed_ecm_u2_stn_L1
|
u2_q_yed_ecm_u2_stn_L1
|
||||||
u2_q_yed_u2_g_yer_L1
|
u2_q_yed_u2_g_yer_L1
|
||||||
u2_q_yed_u2_stn_L1
|
u2_q_yed_u2_stn_L1
|
||||||
u2_g_yer_ecm_u2_q_yed_L1
|
u2_g_yer_ecm_u2_q_yed_L1
|
||||||
u2_g_yer_ecm_u2_stn_L1
|
u2_g_yer_ecm_u2_stn_L1
|
||||||
u2_g_yer_u2_q_yed_L1
|
u2_g_yer_u2_q_yed_L1
|
||||||
u2_g_yer_u2_g_yer_L1
|
u2_g_yer_u2_g_yer_L1
|
||||||
u2_g_yer_u2_stn_L1
|
u2_g_yer_u2_stn_L1
|
||||||
u2_stn_ecm_u2_q_yed_L1
|
u2_stn_ecm_u2_q_yed_L1
|
||||||
u2_stn_ecm_u2_stn_L1
|
u2_stn_ecm_u2_stn_L1
|
||||||
u2_stn_u2_q_yed_L1
|
u2_stn_u2_q_yed_L1
|
||||||
u2_stn_u2_g_yer_L1
|
u2_stn_u2_g_yer_L1
|
||||||
u2_estn_u2_estn_L1
|
u2_estn_u2_estn_L1
|
||||||
u2_ehic_u2_ehic_L1
|
u2_ehic_u2_ehic_L1
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1
|
de_q_yed_ecm_de_q_yed_L1
|
||||||
de_q_yed_ecm_u2_stn_L1
|
de_q_yed_ecm_u2_stn_L1
|
||||||
de_q_yed_de_g_yer_L1
|
de_q_yed_de_g_yer_L1
|
||||||
de_q_yed_u2_stn_L1
|
de_q_yed_u2_stn_L1
|
||||||
de_g_yer_ecm_de_q_yed_L1
|
de_g_yer_ecm_de_q_yed_L1
|
||||||
de_g_yer_ecm_u2_stn_L1
|
de_g_yer_ecm_u2_stn_L1
|
||||||
de_g_yer_de_q_yed_L1
|
de_g_yer_de_q_yed_L1
|
||||||
de_g_yer_de_g_yer_L1
|
de_g_yer_de_g_yer_L1
|
||||||
de_g_yer_u2_stn_L1
|
de_g_yer_u2_stn_L1
|
||||||
de_ehic_de_ehic_L1
|
de_ehic_de_ehic_L1
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
||||||
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
||||||
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
||||||
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
||||||
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
||||||
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
||||||
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
||||||
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
||||||
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
||||||
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
||||||
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
||||||
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
||||||
u2_estn_u2_estn_L1 = 1 ;
|
u2_estn_u2_estn_L1 = 1 ;
|
||||||
u2_ehic_u2_ehic_L1 = 1 ;
|
u2_ehic_u2_ehic_L1 = 1 ;
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
||||||
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
||||||
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
||||||
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
||||||
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
||||||
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
||||||
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
||||||
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
||||||
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
de_ehic_de_ehic_L1 = 1 ;
|
de_ehic_de_ehic_L1 = 1 ;
|
||||||
|
|
||||||
|
|
||||||
model(linear);
|
model(linear);
|
||||||
[name = 'eq1']
|
[name = 'eq1']
|
||||||
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_Q_YED ;
|
+ res_U2_Q_YED ;
|
||||||
[name = 'eq2']
|
[name = 'eq2']
|
||||||
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_G_YER ;
|
+ res_U2_G_YER ;
|
||||||
[name = 'eq3']
|
[name = 'eq3']
|
||||||
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ res_U2_STN ;
|
+ res_U2_STN ;
|
||||||
[name = 'eq4']
|
[name = 'eq4']
|
||||||
U2_ESTN = u2_estn_u2_estn_L1 * U2_ESTN(-1)
|
U2_ESTN = u2_estn_u2_estn_L1 * U2_ESTN(-1)
|
||||||
+ res_U2_ESTN ;
|
+ res_U2_ESTN ;
|
||||||
[name = 'eq5']
|
[name = 'eq5']
|
||||||
U2_EHIC = u2_ehic_u2_ehic_L1 * U2_EHIC(-1)
|
U2_EHIC = u2_ehic_u2_ehic_L1 * U2_EHIC(-1)
|
||||||
+ res_U2_EHIC ;
|
+ res_U2_EHIC ;
|
||||||
[name = 'eq6']
|
[name = 'eq6']
|
||||||
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_Q_YED ;
|
+ res_DE_Q_YED ;
|
||||||
[name = 'eq7']
|
[name = 'eq7']
|
||||||
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
||||||
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_G_YER ;
|
+ res_DE_G_YER ;
|
||||||
[name = 'eq8']
|
[name = 'eq8']
|
||||||
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
shocks;
|
shocks;
|
||||||
var res_U2_Q_YED = 0.005;
|
var res_U2_Q_YED = 0.005;
|
||||||
var res_U2_G_YER = 0.005;
|
var res_U2_G_YER = 0.005;
|
||||||
var res_U2_STN = 0.005;
|
var res_U2_STN = 0.005;
|
||||||
var res_U2_ESTN = 0.005;
|
var res_U2_ESTN = 0.005;
|
||||||
var res_U2_EHIC = 0.005;
|
var res_U2_EHIC = 0.005;
|
||||||
var res_DE_Q_YED = 0.005;
|
var res_DE_Q_YED = 0.005;
|
||||||
var res_DE_G_YER = 0.005;
|
var res_DE_G_YER = 0.005;
|
||||||
var res_DE_EHIC = 0.005;
|
var res_DE_EHIC = 0.005;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
NSIMS = 1;
|
NSIMS = 1;
|
||||||
|
|
||||||
options_.noprint = 1;
|
options_.noprint = 1;
|
||||||
calibrated_values = M_.params;
|
calibrated_values = M_.params;
|
||||||
verbatim;
|
verbatim;
|
||||||
Sigma_e = M_.Sigma_e;
|
Sigma_e = M_.Sigma_e;
|
||||||
end;
|
end;
|
||||||
options_.bnlms.set_dynare_seed_to_default = false;
|
options_.bnlms.set_dynare_seed_to_default = false;
|
||||||
|
|
||||||
nparampool = length(M_.params);
|
nparampool = length(M_.params);
|
||||||
BETA = zeros(NSIMS, nparampool);
|
BETA = zeros(NSIMS, nparampool);
|
||||||
for i=1:NSIMS
|
for i=1:NSIMS
|
||||||
firstobs = rand(3, length(M_.endo_names));
|
firstobs = rand(3, length(M_.endo_names));
|
||||||
M_.params = calibrated_values;
|
M_.params = calibrated_values;
|
||||||
M_.Sigma_e = Sigma_e;
|
M_.Sigma_e = Sigma_e;
|
||||||
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
||||||
simdata = simdata(simdata.dates(5001:6000));
|
simdata = simdata(simdata.dates(5001:6000));
|
||||||
names=regexp(simdata.name, 'res\w*');
|
names=regexp(simdata.name, 'res\w*');
|
||||||
idxs = [];
|
idxs = [];
|
||||||
for j=1:length(names)
|
for j=1:length(names)
|
||||||
if isempty(names{j})
|
if isempty(names{j})
|
||||||
idxs = [idxs j];
|
idxs = [idxs j];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
simdata = sur(simdata{idxs}, {}, {}, 'mymodel', true);
|
simdata = sur(simdata{idxs}, {}, {}, 'mymodel', true);
|
||||||
BETA(i, :) = M_.params';
|
BETA(i, :) = M_.params';
|
||||||
oo_ = rmfield(oo_, 'sur');
|
oo_ = rmfield(oo_, 'sur');
|
||||||
end
|
end
|
||||||
|
|
||||||
if NSIMS > 1
|
if NSIMS > 1
|
||||||
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
||||||
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
good = [-0.826686383251952
|
good = [-0.826686383251952
|
||||||
-0.346754226737713
|
-0.346754226737713
|
||||||
0.063012625739192
|
0.063012625739192
|
||||||
0.074803008678581
|
0.074803008678581
|
||||||
-0.017406695286611
|
-0.017406695286611
|
||||||
-0.127075466955954
|
-0.127075466955954
|
||||||
0.025273119798253
|
0.025273119798253
|
||||||
0.524311285013928
|
0.524311285013928
|
||||||
-0.117653504652072
|
-0.117653504652072
|
||||||
-0.027795769946178
|
-0.027795769946178
|
||||||
-0.156599054434094
|
-0.156599054434094
|
||||||
0.054048691636616
|
0.054048691636616
|
||||||
0.276250884768198
|
0.276250884768198
|
||||||
1.000417819589230
|
1.000417819589230
|
||||||
0.999336022919911
|
0.999336022919911
|
||||||
-0.803262845969268
|
-0.803262845969268
|
||||||
-0.309598590696623
|
-0.309598590696623
|
||||||
0.051598925732525
|
0.051598925732525
|
||||||
0.039275097813797
|
0.039275097813797
|
||||||
0.024902442384228
|
0.024902442384228
|
||||||
-0.096310332265968
|
-0.096310332265968
|
||||||
-0.022625946626029
|
-0.022625946626029
|
||||||
0.461672601960238
|
0.461672601960238
|
||||||
-0.110232456667380
|
-0.110232456667380
|
||||||
1.000000000000000];
|
1.000000000000000];
|
||||||
if max(abs(BETA' - good)) > 1e-14
|
if max(abs(BETA' - good)) > 1e-14
|
||||||
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:nparampool
|
for i=1:nparampool
|
||||||
figure
|
figure
|
||||||
hold on
|
hold on
|
||||||
title(strrep(M_.param_names(i,:), '_', '\_'));
|
title(strrep(M_.param_names(i,:), '_', '\_'));
|
||||||
histogram(BETA(:,i),50);
|
histogram(BETA(:,i),50);
|
||||||
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
||||||
hold off
|
hold off
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,222 +1,222 @@
|
||||||
// --+ options: json=compute +--
|
// --+ options: json=compute +--
|
||||||
|
|
||||||
/* REMARK
|
/* REMARK
|
||||||
** ------
|
** ------
|
||||||
**
|
**
|
||||||
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
** You need to have the first line on top of the mod file. The options defined on this line are passed
|
||||||
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
** to the dynare command (you can add other options, separated by spaces or commas). The option defined
|
||||||
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
** here is mandatory for the decomposition. It forces Dynare to output another representation of the
|
||||||
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
** model in JSON file (additionaly to the matlab files) which is used here to manipulate the equations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var
|
var
|
||||||
U2_Q_YED
|
U2_Q_YED
|
||||||
U2_G_YER
|
U2_G_YER
|
||||||
U2_STN
|
U2_STN
|
||||||
U2_ESTN
|
U2_ESTN
|
||||||
U2_EHIC
|
U2_EHIC
|
||||||
DE_Q_YED
|
DE_Q_YED
|
||||||
DE_G_YER
|
DE_G_YER
|
||||||
DE_EHIC
|
DE_EHIC
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
varexo
|
varexo
|
||||||
res_U2_Q_YED
|
res_U2_Q_YED
|
||||||
res_U2_G_YER
|
res_U2_G_YER
|
||||||
res_U2_STN
|
res_U2_STN
|
||||||
res_U2_ESTN
|
res_U2_ESTN
|
||||||
res_U2_EHIC
|
res_U2_EHIC
|
||||||
res_DE_Q_YED
|
res_DE_Q_YED
|
||||||
res_DE_G_YER
|
res_DE_G_YER
|
||||||
res_DE_EHIC
|
res_DE_EHIC
|
||||||
;
|
;
|
||||||
|
|
||||||
parameters
|
parameters
|
||||||
u2_q_yed_ecm_u2_q_yed_L1
|
u2_q_yed_ecm_u2_q_yed_L1
|
||||||
u2_q_yed_ecm_u2_stn_L1
|
u2_q_yed_ecm_u2_stn_L1
|
||||||
u2_q_yed_u2_g_yer_L1
|
u2_q_yed_u2_g_yer_L1
|
||||||
u2_q_yed_u2_stn_L1
|
u2_q_yed_u2_stn_L1
|
||||||
u2_g_yer_ecm_u2_q_yed_L1
|
u2_g_yer_ecm_u2_q_yed_L1
|
||||||
u2_g_yer_ecm_u2_stn_L1
|
u2_g_yer_ecm_u2_stn_L1
|
||||||
u2_g_yer_u2_q_yed_L1
|
u2_g_yer_u2_q_yed_L1
|
||||||
u2_g_yer_u2_g_yer_L1
|
u2_g_yer_u2_g_yer_L1
|
||||||
u2_g_yer_u2_stn_L1
|
u2_g_yer_u2_stn_L1
|
||||||
u2_stn_ecm_u2_q_yed_L1
|
u2_stn_ecm_u2_q_yed_L1
|
||||||
u2_stn_ecm_u2_stn_L1
|
u2_stn_ecm_u2_stn_L1
|
||||||
u2_stn_u2_q_yed_L1
|
u2_stn_u2_q_yed_L1
|
||||||
u2_stn_u2_g_yer_L1
|
u2_stn_u2_g_yer_L1
|
||||||
u2_estn_u2_estn_L1
|
u2_estn_u2_estn_L1
|
||||||
u2_ehic_u2_ehic_L1
|
u2_ehic_u2_ehic_L1
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1
|
de_q_yed_ecm_de_q_yed_L1
|
||||||
de_q_yed_ecm_u2_stn_L1
|
de_q_yed_ecm_u2_stn_L1
|
||||||
de_q_yed_de_g_yer_L1
|
de_q_yed_de_g_yer_L1
|
||||||
de_q_yed_u2_stn_L1
|
de_q_yed_u2_stn_L1
|
||||||
de_g_yer_ecm_de_q_yed_L1
|
de_g_yer_ecm_de_q_yed_L1
|
||||||
de_g_yer_ecm_u2_stn_L1
|
de_g_yer_ecm_u2_stn_L1
|
||||||
de_g_yer_de_q_yed_L1
|
de_g_yer_de_q_yed_L1
|
||||||
de_g_yer_de_g_yer_L1
|
de_g_yer_de_g_yer_L1
|
||||||
de_g_yer_u2_stn_L1
|
de_g_yer_u2_stn_L1
|
||||||
de_ehic_de_ehic_L1
|
de_ehic_de_ehic_L1
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
u2_q_yed_ecm_u2_q_yed_L1 = -0.82237516589315 ;
|
||||||
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
u2_q_yed_ecm_u2_stn_L1 = -0.323715338568976 ;
|
||||||
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
u2_q_yed_u2_g_yer_L1 = 0.0401361895021084 ;
|
||||||
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
u2_q_yed_u2_stn_L1 = 0.058397703958446 ;
|
||||||
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
u2_g_yer_ecm_u2_q_yed_L1 = 0.0189896046977421 ;
|
||||||
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
u2_g_yer_ecm_u2_stn_L1 = -0.109597659887432 ;
|
||||||
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
u2_g_yer_u2_q_yed_L1 = 0.0037667967632025 ;
|
||||||
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
u2_g_yer_u2_g_yer_L1 = 0.480506381923644 ;
|
||||||
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
u2_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
u2_stn_ecm_u2_q_yed_L1 = -0.0438500662608356 ;
|
||||||
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
u2_stn_ecm_u2_stn_L1 = -0.153283917138772 ;
|
||||||
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
u2_stn_u2_q_yed_L1 = 0.0328744983772825 ;
|
||||||
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
u2_stn_u2_g_yer_L1 = 0.292121949736756 ;
|
||||||
u2_estn_u2_estn_L1 = 1 ;
|
u2_estn_u2_estn_L1 = 1 ;
|
||||||
u2_ehic_u2_ehic_L1 = 1 ;
|
u2_ehic_u2_ehic_L1 = 1 ;
|
||||||
|
|
||||||
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
de_q_yed_ecm_de_q_yed_L1 = -0.822375165893149 ;
|
||||||
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
de_q_yed_ecm_u2_stn_L1 = -0.323715338568977 ;
|
||||||
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
de_q_yed_de_g_yer_L1 = 0.0401361895021082 ;
|
||||||
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
de_q_yed_u2_stn_L1 = 0.0583977039584461 ;
|
||||||
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
de_g_yer_ecm_de_q_yed_L1 = 0.0189896046977422 ;
|
||||||
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
de_g_yer_ecm_u2_stn_L1 = -0.109597659887433 ;
|
||||||
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
de_g_yer_de_q_yed_L1 = 0.00376679676320256;
|
||||||
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
de_g_yer_de_g_yer_L1 = 0.480506381923643 ;
|
||||||
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
de_g_yer_u2_stn_L1 = -0.0722359286123494 ;
|
||||||
de_ehic_de_ehic_L1 = 1 ;
|
de_ehic_de_ehic_L1 = 1 ;
|
||||||
|
|
||||||
|
|
||||||
model(linear);
|
model(linear);
|
||||||
[name = 'eq1']
|
[name = 'eq1']
|
||||||
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_Q_YED) = u2_q_yed_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_q_yed_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_Q_YED ;
|
+ res_U2_Q_YED ;
|
||||||
[name = 'eq2']
|
[name = 'eq2']
|
||||||
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_G_YER) = u2_g_yer_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_g_yer_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_g_yer_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ u2_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_U2_G_YER ;
|
+ res_U2_G_YER ;
|
||||||
[name = 'eq3']
|
[name = 'eq3']
|
||||||
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
diff(U2_STN) = u2_stn_ecm_u2_q_yed_L1 * (U2_Q_YED(-1) - U2_EHIC(-1))
|
||||||
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ u2_stn_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
+ u2_stn_u2_q_yed_L1 * diff(U2_Q_YED(-1))
|
||||||
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
+ u2_stn_u2_g_yer_L1 * diff(U2_G_YER(-1))
|
||||||
+ res_U2_STN ;
|
+ res_U2_STN ;
|
||||||
[name = 'eq4']
|
[name = 'eq4']
|
||||||
U2_ESTN = u2_estn_u2_estn_L1 * U2_ESTN(-1)
|
U2_ESTN = u2_estn_u2_estn_L1 * U2_ESTN(-1)
|
||||||
+ res_U2_ESTN ;
|
+ res_U2_ESTN ;
|
||||||
[name = 'eq5']
|
[name = 'eq5']
|
||||||
U2_EHIC = u2_ehic_u2_ehic_L1 * U2_EHIC(-1)
|
U2_EHIC = u2_ehic_u2_ehic_L1 * U2_EHIC(-1)
|
||||||
+ res_U2_EHIC ;
|
+ res_U2_EHIC ;
|
||||||
[name = 'eq6']
|
[name = 'eq6']
|
||||||
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_Q_YED) = de_q_yed_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_q_yed_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_q_yed_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_q_yed_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_Q_YED ;
|
+ res_DE_Q_YED ;
|
||||||
[name = 'eq7']
|
[name = 'eq7']
|
||||||
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
diff(DE_G_YER) = de_g_yer_ecm_de_q_yed_L1 * (DE_Q_YED(-1) - DE_EHIC(-1))
|
||||||
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
+ de_g_yer_ecm_u2_stn_L1 * (U2_STN(-1) - U2_ESTN(-1))
|
||||||
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
+ de_g_yer_de_q_yed_L1 * diff(DE_Q_YED(-1))
|
||||||
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
+ de_g_yer_de_g_yer_L1 * diff(DE_G_YER(-1))
|
||||||
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
+ de_g_yer_u2_stn_L1 * diff(U2_STN(-1))
|
||||||
+ res_DE_G_YER ;
|
+ res_DE_G_YER ;
|
||||||
[name = 'eq8']
|
[name = 'eq8']
|
||||||
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
DE_EHIC = DE_EHIC(-1) + res_DE_EHIC ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
shocks;
|
shocks;
|
||||||
var res_U2_Q_YED = 0.005;
|
var res_U2_Q_YED = 0.005;
|
||||||
var res_U2_G_YER = 0.005;
|
var res_U2_G_YER = 0.005;
|
||||||
var res_U2_STN = 0.005;
|
var res_U2_STN = 0.005;
|
||||||
var res_U2_ESTN = 0.005;
|
var res_U2_ESTN = 0.005;
|
||||||
var res_U2_EHIC = 0.005;
|
var res_U2_EHIC = 0.005;
|
||||||
var res_DE_Q_YED = 0.005;
|
var res_DE_Q_YED = 0.005;
|
||||||
var res_DE_G_YER = 0.005;
|
var res_DE_G_YER = 0.005;
|
||||||
var res_DE_EHIC = 0.005;
|
var res_DE_EHIC = 0.005;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
NSIMS = 1;
|
NSIMS = 1;
|
||||||
|
|
||||||
options_.noprint = 1;
|
options_.noprint = 1;
|
||||||
calibrated_values = M_.params;
|
calibrated_values = M_.params;
|
||||||
verbatim;
|
verbatim;
|
||||||
Sigma_e = M_.Sigma_e;
|
Sigma_e = M_.Sigma_e;
|
||||||
end;
|
end;
|
||||||
options_.bnlms.set_dynare_seed_to_default = false;
|
options_.bnlms.set_dynare_seed_to_default = false;
|
||||||
|
|
||||||
nparampool = length(M_.params);
|
nparampool = length(M_.params);
|
||||||
BETA = zeros(NSIMS, nparampool);
|
BETA = zeros(NSIMS, nparampool);
|
||||||
for i=1:NSIMS
|
for i=1:NSIMS
|
||||||
firstobs = rand(3, length(M_.endo_names));
|
firstobs = rand(3, length(M_.endo_names));
|
||||||
M_.params = calibrated_values;
|
M_.params = calibrated_values;
|
||||||
M_.Sigma_e = Sigma_e;
|
M_.Sigma_e = Sigma_e;
|
||||||
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
simdata = simul_backward_model(dseries(firstobs, dates('1995Q1'), M_.endo_names), 10000);
|
||||||
simdata = simdata(simdata.dates(5001:6000));
|
simdata = simdata(simdata.dates(5001:6000));
|
||||||
names=regexp(simdata.name, 'res\w*');
|
names=regexp(simdata.name, 'res\w*');
|
||||||
idxs = [];
|
idxs = [];
|
||||||
for j=1:length(names)
|
for j=1:length(names)
|
||||||
if isempty(names{j})
|
if isempty(names{j})
|
||||||
idxs = [idxs j];
|
idxs = [idxs j];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
simdata = sur(simdata{idxs}, {'u2_q_yed_u2_g_yer_L1', 'u2_estn_u2_estn_L1', 'u2_ehic_u2_ehic_L1', 'de_q_yed_de_g_yer_L1', 'u2_g_yer_u2_g_yer_L1', 'u2_stn_u2_q_yed_L1', 'u2_q_yed_ecm_u2_q_yed_L1', 'de_g_yer_u2_stn_L1'}, {}, 'mymodel', true);
|
simdata = sur(simdata{idxs}, {'u2_q_yed_u2_g_yer_L1', 'u2_estn_u2_estn_L1', 'u2_ehic_u2_ehic_L1', 'de_q_yed_de_g_yer_L1', 'u2_g_yer_u2_g_yer_L1', 'u2_stn_u2_q_yed_L1', 'u2_q_yed_ecm_u2_q_yed_L1', 'de_g_yer_u2_stn_L1'}, {}, 'mymodel', true);
|
||||||
BETA(i, :) = M_.params';
|
BETA(i, :) = M_.params';
|
||||||
oo_ = rmfield(oo_, 'sur');
|
oo_ = rmfield(oo_, 'sur');
|
||||||
end
|
end
|
||||||
if NSIMS > 1
|
if NSIMS > 1
|
||||||
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
if max(abs(mean(BETA)' - calibrated_values)) > 1e-2
|
||||||
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
good = [-0.811559435201128
|
good = [-0.811559435201128
|
||||||
-0.323715338568976
|
-0.323715338568976
|
||||||
0.073666282610569
|
0.073666282610569
|
||||||
0.058397703958446
|
0.058397703958446
|
||||||
0.018989604697742
|
0.018989604697742
|
||||||
-0.109597659887432
|
-0.109597659887432
|
||||||
0.003766796763203
|
0.003766796763203
|
||||||
0.510389966839712
|
0.510389966839712
|
||||||
-0.072235928612349
|
-0.072235928612349
|
||||||
-0.043850066260836
|
-0.043850066260836
|
||||||
-0.153283917138772
|
-0.153283917138772
|
||||||
0.058739144948151
|
0.058739144948151
|
||||||
0.292121949736756
|
0.292121949736756
|
||||||
1.000413662363949
|
1.000413662363949
|
||||||
0.999337514406012
|
0.999337514406012
|
||||||
-0.822375165893149
|
-0.822375165893149
|
||||||
-0.323715338568977
|
-0.323715338568977
|
||||||
0.046096335070402
|
0.046096335070402
|
||||||
0.058397703958446
|
0.058397703958446
|
||||||
0.018989604697742
|
0.018989604697742
|
||||||
-0.109597659887433
|
-0.109597659887433
|
||||||
0.003766796763203
|
0.003766796763203
|
||||||
0.480506381923643
|
0.480506381923643
|
||||||
-0.111002148299648
|
-0.111002148299648
|
||||||
1.000000000000000];
|
1.000000000000000];
|
||||||
if max(abs(BETA' - good)) > 1e-14
|
if max(abs(BETA' - good)) > 1e-14
|
||||||
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]);
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:nparampool
|
for i=1:nparampool
|
||||||
figure
|
figure
|
||||||
hold on
|
hold on
|
||||||
title(strrep(M_.param_names(i,:), '_', '\_'));
|
title(strrep(M_.param_names(i,:), '_', '\_'));
|
||||||
histogram(BETA(:,i),50);
|
histogram(BETA(:,i),50);
|
||||||
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
line([calibrated_values(i) calibrated_values(i)], [0 NSIMS/10], 'LineWidth', 2, 'Color', 'r');
|
||||||
hold off
|
hold off
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue