diff --git a/tests/Makefile.am b/tests/Makefile.am index 874d44a3ba89246b51ffc7087a361047a3db1538..a7324875a37e90e7eb246e1a0f3794ae390422f6 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -298,9 +298,12 @@ MODFILES = \ gradient/fs2000_numgrad_5.mod \ filter_step_ahead/fs2000_filter_step_ahead_bayesian.mod \ filter_step_ahead/fs2000_filter_step_ahead_ML.mod \ + loglinear/example4_exp.mod \ loglinear/example4_loglinear.mod \ loglinear/example4_loglinear_lagged_exogenous.mod \ loglinear/example4_loglinear_lagged_exogenous_a.mod \ + loglinear/example4_exp_histval.mod \ + loglinear/example4_loglinear_histval.mod \ smoother2histval/fs2000_simul.mod \ smoother2histval/fs2000_smooth.mod \ smoother2histval/fs2000_smooth_stoch_simul.mod \ @@ -463,9 +466,14 @@ deterministic_simulations/multiple_lead_lags/sim_lead_lag.o.trs: deterministic_s deterministic_simulations/multiple_lead_lags/ramst_augmented_histval.m.trs: ramst.m.trs deterministic_simulations/multiple_lead_lags/ramst_augmented_histval.o.trs: ramst.o.trs +loglinear/example4_loglinear.m.trs: loglinear/example4_exp.m.trs +loglinear/example4_loglinear.o.trs: loglinear/example4_exp.o.trs loglinear/example4_loglinear_lagged_exogenous_a.m.trs: loglinear/example4_loglinear_lagged_exogenous.m.trs loglinear/example4_loglinear_lagged_exogenous_a.o.trs: loglinear/example4_loglinear_lagged_exogenous.o.trs +loglinear/example4_loglinear_histval.m.trs: loglinear/example4_exp_histval.m.trs +loglinear/example4_loglinear_histval.o.trs: loglinear/example4_exp_histval.o.trs + observation_trends_and_prefiltering/ML/Trend_loglinear_no_prefilter_first_obs.m.trs: observation_trends_and_prefiltering/ML/Trend_loglinear_no_prefilter.m.trs observation_trends_and_prefiltering/ML/Trend_loglinear_no_prefilter_first_obs.o.trs: observation_trends_and_prefiltering/ML/Trend_loglinear_no_prefilter.o.trs observation_trends_and_prefiltering/ML/Trend_loglinear_no_prefilter.m.trs: observation_trends_and_prefiltering/ML/Trend_no_prefilter.m.trs @@ -964,6 +972,8 @@ clean-local: rm -f initval_file/ramst_initval_file_data_col_vec_mat.mat initval_file/ramst_initval_file_data_row_vec_mat.mat initval_file/ramst_initval_file_excel.xls + rm -f loglinear/results_exp_histval.mat loglinear/results_exp.mat + find . -name "*.tex" -type f -delete find . -name "*.aux" -type f -delete find . -name "*.log" -type f -delete diff --git a/tests/loglinear/example4_exp.mod b/tests/loglinear/example4_exp.mod index e53b68db74ef537f524ce8f6c98486b29af87119..4fd4811bf4613303f67b3bf9459ee03fcf524508 100644 --- a/tests/loglinear/example4_exp.mod +++ b/tests/loglinear/example4_exp.mod @@ -64,5 +64,19 @@ var e, u = phi*0.009*0.009; end; stoch_simul(order=1); +forecast; +conditional_forecast_paths; +var a; +periods 1 2 ; +values 0.01 -0.02; +var b; +periods 1 2; +values 0.05 0; +end; + +conditional_forecast(parameter_set=calibration, controlled_varexo=(u,e)); + oo_exp=oo_; -save results_exp.mat oo_exp +load('conditional_forecasts.mat') +conditional_forecasts_exp=forecasts; +save results_exp.mat oo_exp conditional_forecasts_exp \ No newline at end of file diff --git a/tests/loglinear/example4_exp_histval.mod b/tests/loglinear/example4_exp_histval.mod new file mode 100644 index 0000000000000000000000000000000000000000..e07a0a6fbf094754f29a7c9687b0555bce5667c3 --- /dev/null +++ b/tests/loglinear/example4_exp_histval.mod @@ -0,0 +1,92 @@ +/* + * Example 1 from F. Collard (2001): "Stochastic simulations with DYNARE: + * A practical guide" (see "guide.pdf" in the documentation directory). + */ + +/* + * Copyright (C) 2001-2016 Dynare Team + * + * This file is part of Dynare. + * + * Dynare is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dynare is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dynare. If not, see <http://www.gnu.org/licenses/>. + */ + + +var y, c, k, a, h, b; +varexo e, u; + +parameters beta, rho, alpha, delta, theta, psi, tau; + +alpha = 0.36; +rho = 0.95; +tau = 0.025; +beta = 0.99; +delta = 0.025; +psi = 0; +theta = 2.95; + +phi = 0.1; + +model; +exp(c)*theta*exp(h)^(1+psi)=(1-alpha)*exp(y); +exp(k) = beta*(((exp(b)*exp(c))/(exp(b(+1))*exp(c(+1)))) + *(exp(b(+1))*alpha*exp(y(+1))+(1-delta)*exp(k))); +exp(y) = exp(a)*(exp(k(-1))^alpha)*(exp(h)^(1-alpha)); +exp(k) = exp(b)*(exp(y)-exp(c))+(1-delta)*exp(k(-1)); +a = rho*a(-1)+tau*b(-1) + e; +b = tau*a(-1)+rho*b(-1) + u; +end; + +initval; +y = log(1.08068253095672); +c = log(0.80359242014163); +h = log(0.29175631001732); +k = log(11.08360443260358); +a = 0; +b = 0; +end; +resid(1); +shocks; +var e; stderr 0.009; +var u; stderr 0.009; +var e, u = phi*0.009*0.009; +end; + +histval; +k(0) = log(11.08); +a(0) = log(1.2); +b(0) = log(1); +end; + +stoch_simul(order=1,periods=1000); +forecast; + +forecast; +conditional_forecast_paths; +var a; +periods 1 2 ; +values 0.01 -0.02; +var b; +periods 1 2; +values 0.05 0; +end; + +conditional_forecast(parameter_set=calibration, controlled_varexo=(u,e)); + +oo_exp=oo_; +load('conditional_forecasts.mat') +conditional_forecasts_exp=forecasts; + +oo_exp=oo_; +save results_exp_histval.mat oo_exp conditional_forecasts_exp diff --git a/tests/loglinear/example4_loglinear.mod b/tests/loglinear/example4_loglinear.mod index 482a39e7ebac1d7747d8c3456e905eb3afe54cd5..81f4583a424a77e98d2e12529ab62624146c5d84 100644 --- a/tests/loglinear/example4_loglinear.mod +++ b/tests/loglinear/example4_loglinear.mod @@ -64,6 +64,18 @@ var e, u = phi*0.009*0.009; end; stoch_simul(loglinear,order=1); +forecast; + +conditional_forecast_paths; +var a; +periods 1 2 ; +values 0.01 -0.02; +var b; +periods 1 2; +values 0.05 0; +end; + +conditional_forecast(parameter_set=calibration, controlled_varexo=(u,e)); load results_exp; if max(max(abs(oo_.dr.ghx-oo_exp.dr.ghx)))>1e-10 @@ -99,6 +111,22 @@ for ii=1:length(oo_.autocorr) error('Option loglinear wrong, moments not equal') end end + +if max(max(abs(struct2array(oo_.forecast.Mean)-struct2array(oo_exp.forecast.Mean))))>1e-10 || ... + max(max(abs(struct2array(oo_.forecast.HPDinf)-struct2array(oo_exp.forecast.HPDinf))))>1e-10 || ... + max(max(abs(struct2array(oo_.forecast.HPDsup)-struct2array(oo_exp.forecast.HPDsup))))>1e-10 + error('Option loglinear wrong, forecast not equal') +end + +load('conditional_forecasts.mat') + +if max(max(abs(struct2array(forecasts.cond.Mean)-struct2array(conditional_forecasts_exp.cond.Mean))))>1e-10 || ... + max(max(abs(struct2array(forecasts.cond.ci)-struct2array(conditional_forecasts_exp.cond.ci))))>1e-10 || ... + max(max(abs(struct2array(forecasts.uncond.Mean)-struct2array(conditional_forecasts_exp.uncond.Mean))))>1e-10 || ... + max(max(abs(struct2array(forecasts.uncond.ci)-struct2array(conditional_forecasts_exp.uncond.ci))))>1e-10 + error('Option loglinear wrong, conditional forecast not equal') +end + stoch_simul(loglinear,order=1,periods=100000); if abs(mean(y)-0.0776)>0.02 error('Simulations are wrong') diff --git a/tests/loglinear/example4_loglinear_histval.mod b/tests/loglinear/example4_loglinear_histval.mod new file mode 100644 index 0000000000000000000000000000000000000000..752baa8bc3cd100baad229aa497b6c2b0cc70db1 --- /dev/null +++ b/tests/loglinear/example4_loglinear_histval.mod @@ -0,0 +1,124 @@ +/* + * Example 1 from F. Collard (2001): "Stochastic simulations with DYNARE: + * A practical guide" (see "guide.pdf" in the documentation directory). + */ + +/* + * Copyright (C) 2001-2010 Dynare Team + * + * This file is part of Dynare. + * + * Dynare is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dynare is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dynare. If not, see <http://www.gnu.org/licenses/>. + */ + + +var y, c, k, a, h, b; +varexo e, u; + +parameters beta, rho, alpha, delta, theta, psi, tau; + +alpha = 0.36; +rho = 0.95; +tau = 0.025; +beta = 0.99; +delta = 0.025; +psi = 0; +theta = 2.95; + +phi = 0.1; + +model; +c*theta*h^(1+psi)=(1-alpha)*y; +k = beta*(((b*c)/(b(+1)*c(+1))) + *(b(+1)*alpha*y(+1)+(1-delta)*k)); +y = a*(k(-1)^alpha)*(h^(1-alpha)); +k = b*(y-c)+(1-delta)*k(-1); +log(a) = rho*log(a(-1))+tau*log(b(-1)) + e; +log(b) = tau*log(a(-1))+rho*log(b(-1)) + u; +end; + +initval; +y = 1.08068253095672; +c = 0.80359242014163; +h = 0.29175631001732; +k = 11.08360443260358; +a = 1; +b = 1; +end; + +resid(1); +shocks; +var e; stderr 0.009; +var u; stderr 0.009; +var e, u = phi*0.009*0.009; +end; + +histval; +k(0) = 11.08; +a(0) = 1.2; +b(0) = 1; +end; + +stoch_simul(loglinear,order=1,periods=1000); +forecast; + +load results_exp_histval; +if max(max(abs(oo_.dr.ghx-oo_exp.dr.ghx)))>1e-10 + error('Option loglinear wrong, ghx not equal') +end +if max(max(abs(oo_.dr.ghu-oo_exp.dr.ghu)))>1e-10 + error('Option loglinear wrong, ghu not equal') +end +if max(max(abs(oo_.irfs.y_e-oo_exp.irfs.y_e)))>1e-10 + error('Option loglinear wrong, IRFs not equal') +end +if max(max(abs(oo_.irfs.y_u-oo_exp.irfs.y_u)))>1e-10 + error('Option loglinear wrong, ghu not equal') +end +if max(max(abs(oo_.mean-oo_exp.mean)))>1e-10 + error('Option loglinear wrong, mean not equal') +end +if max(max(abs(oo_.dr.ys-oo_exp.dr.ys)))>1e-10 + error('Option loglinear wrong, ys not equal') +end +if max(max(abs(oo_.steady_state-oo_exp.steady_state)))>1e-10 + error('Option loglinear wrong, steady_state not equal') +end + +if max(max(abs(struct2array(oo_.forecast.Mean)-struct2array(oo_exp.forecast.Mean))))>1e-10 || ... + max(max(abs(struct2array(oo_.forecast.HPDinf)-struct2array(oo_exp.forecast.HPDinf))))>1e-10 || ... + max(max(abs(struct2array(oo_.forecast.HPDsup)-struct2array(oo_exp.forecast.HPDsup))))>1e-10 + error('Option loglinear wrong, forecast not equal') +end + +conditional_forecast_paths; +var a; +periods 1 2 ; +values 0.01 -0.02; +var b; +periods 1 2; +values 0.05 0; +end; + +conditional_forecast(parameter_set=calibration, controlled_varexo=(u,e)); + + +load('conditional_forecasts.mat') + +if max(max(abs(struct2array(forecasts.cond.Mean)-struct2array(conditional_forecasts_exp.cond.Mean))))>1e-10 || ... + max(max(abs(struct2array(forecasts.cond.ci)-struct2array(conditional_forecasts_exp.cond.ci))))>1e-10 || ... + max(max(abs(struct2array(forecasts.uncond.Mean)-struct2array(conditional_forecasts_exp.uncond.Mean))))>1e-10 || ... + max(max(abs(struct2array(forecasts.uncond.ci)-struct2array(conditional_forecasts_exp.uncond.ci))))>1e-10 + error('Option loglinear wrong, conditional forecast not equal') +end diff --git a/tests/loglinear/results_exp.mat b/tests/loglinear/results_exp.mat deleted file mode 100644 index fad6d3f8f1d8ff6a74544ef4c6b7783094ffcc13..0000000000000000000000000000000000000000 Binary files a/tests/loglinear/results_exp.mat and /dev/null differ