From 19b7d202d2c1fb535455cb52f12d0313e85d1d0c Mon Sep 17 00:00:00 2001
From: Willi Mutschler <willi@mutschler.eu>
Date: Fri, 10 Jul 2020 21:52:51 +0200
Subject: [PATCH] testsuite: Add test cases

---
 tests/.gitignore                              |   2 +
 tests/Makefile.am                             |   6 +-
 .../method_of_moments/AnScho_MoM.mod          |   2 +-
 .../RBC_Andreasen_Data_2.mat                  | Bin 0 -> 22287 bytes
 .../estimation/method_of_moments/RBC_MoM.mod  | 194 -----------------
 .../method_of_moments/RBC_MoM_Andreasen.mod   | 202 ++++++++++++++++++
 .../method_of_moments/RBC_MoM_SMM_ME.mod      |  26 +--
 .../method_of_moments/RBC_MoM_prefilter.mod   |   2 +-
 .../method_of_moments/RBC_MoM_steady_helper.m |   8 +
 9 files changed, 231 insertions(+), 211 deletions(-)
 create mode 100644 tests/estimation/method_of_moments/RBC_Andreasen_Data_2.mat
 delete mode 100644 tests/estimation/method_of_moments/RBC_MoM.mod
 create mode 100644 tests/estimation/method_of_moments/RBC_MoM_Andreasen.mod
 create mode 100644 tests/estimation/method_of_moments/RBC_MoM_steady_helper.m

diff --git a/tests/.gitignore b/tests/.gitignore
index 501fbc71d0..722a27d5d7 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -50,6 +50,8 @@ wsOct
 !/ep/mean_preserving_spread.m
 !/ep/rbcii_steady_state.m
 !/estimation/fsdat_simul.m
+!/estimation/method_of_moments/RBC_MoM_steady_helper.m
+!/estimation/method_of_moments/RBC_Andreasen_Data_2.mat
 !/expectations/expectation_ss_old_steadystate.m
 !/external_function/extFunDeriv.m
 !/external_function/extFunNoDerivs.m
diff --git a/tests/Makefile.am b/tests/Makefile.am
index cfaf424ffe..88302799d4 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -25,8 +25,6 @@ MODFILES = \
 	measurement_errors/fs2000_corr_me_ml_mcmc/fs2000_corr_ME.mod \
 	TeX/fs2000_corr_ME.mod \
 	estimation/MH_recover/fs2000_recover_tarb.mod \
-	estimation/method_of_moments/RBC_MoM.mod \
-	estimation/method_of_moments/RBC_MoM_SMM_ME.mod \
 	estimation/fs2000.mod \
 	gsa/ls2003a.mod \
 	optimizers/fs2000_8.mod \
@@ -50,7 +48,9 @@ MODFILES = \
 	estimation/t_proposal/fs2000_student.mod \
 	estimation/tune_mh_jscale/fs2000.mod \
 	estimation/method_of_moments/AnScho_MoM.mod \
-	estimation/method_of_moments/RBCmodel_MoM.mod \
+	estimation/method_of_moments/RBC_MoM_Andreasen.mod \
+	estimation/method_of_moments/RBC_MoM_SMM_ME.mod \
+	estimation/method_of_moments/RBC_MoM_prefilter.mod \
 	moments/example1_var_decomp.mod \
 	moments/example1_bp_test.mod \
 	moments/test_AR1_spectral_density.mod \
diff --git a/tests/estimation/method_of_moments/AnScho_MoM.mod b/tests/estimation/method_of_moments/AnScho_MoM.mod
index 7b482897c1..6741111202 100644
--- a/tests/estimation/method_of_moments/AnScho_MoM.mod
+++ b/tests/estimation/method_of_moments/AnScho_MoM.mod
@@ -194,7 +194,7 @@ matched_moments_ = {
         % , penalized_estimator               % use penalized optimization
         , pruning                             % use pruned state space system at higher-order
         % , verbose                           % display and store intermediate estimation results
-        , weighting_matrix = OPTIMAL          % weighting matrix in moments distance objective function; possible values: OPTIMAL|IDENTITY_MATRIX|DIAGONAL|filename
+        , weighting_matrix = ['optimal']      % weighting matrix in moments distance objective function; possible values: OPTIMAL|IDENTITY_MATRIX|DIAGONAL|filename
         , additional_optimizer_steps = [4]    % vector of numbers for the iterations in the 2-step feasible method of moments
         % , prefilter=0                       % demean each data series by its empirical mean and use centered moments
         % 
diff --git a/tests/estimation/method_of_moments/RBC_Andreasen_Data_2.mat b/tests/estimation/method_of_moments/RBC_Andreasen_Data_2.mat
new file mode 100644
index 0000000000000000000000000000000000000000..0b2ba62defdaab77aa663f2907ae16801837f6b6
GIT binary patch
literal 22287
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

literal 0
HcmV?d00001

diff --git a/tests/estimation/method_of_moments/RBC_MoM.mod b/tests/estimation/method_of_moments/RBC_MoM.mod
deleted file mode 100644
index 7714ac5f2b..0000000000
--- a/tests/estimation/method_of_moments/RBC_MoM.mod
+++ /dev/null
@@ -1,194 +0,0 @@
-% Tests SMM and GMM routines
-%
-% Copyright (C) 2020 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/>.
-% =========================================================================
-
-% Define testscenario
-@#define orderApp = 1
-@#define estimParams = 1
-
-% Note that we will set the numerical optimization tolerance levels very large to speed up the testsuite
-@#define optimizer = 13
-
-
-@#include "RBC_MoM_common.inc"
-
-shocks;
-var u_a; stderr 0.0072;        
-end;
-
-varobs n c iv;
-
-
-@#if estimParams == 0
-estimated_params;
-    DELTA,         0.025;
-    BETTA,         0.98;
-    B,             0.45;
-    %ETAl,          1;
-    ETAc,          1.8;
-    ALFA,          0.65;
-    RHOA,          0.95;
-    stderr u_a,    0.01;
-    %THETA,         3.48;
-end;
-@#endif
-
-@#if estimParams == 1
-estimated_params;
-    DELTA,         ,        0,           1;
-    BETTA,         ,        0,           1;
-    B,             ,        0,           1;
-    %ETAl,          1,           0,           10;
-    ETAc,          ,        0,           10;
-    ALFA,          ,        0,           1;
-    RHOA,          ,        0,           1;
-    stderr u_a,    ,        0,           1;
-    %THETA,         3.48,          0,           10;
-end;
-@#endif
-
-@#if estimParams == 2
-estimated_params;
-    DELTA,         0.025,         0,           1,  normal_pdf, 0.02, 0.5;
-    BETTA,         0.98,         0,           1,  beta_pdf, 0.90, 0.25;
-    B,             0.45,         0,           1,  normal_pdf, 0.40, 0.5;
-    %ETAl,          1,            0,           10, normal_pdf, 0.25, 0.0.1;
-    ETAc,          1.8,         0,           10, normal_pdf, 1.80, 0.5;
-    ALFA,          0.65,         0,           1,  normal_pdf, 0.60, 0.5;
-    RHOA,          0.95,         0,           1,  normal_pdf, 0.90, 0.5;
-    stderr u_a,    0.01,         0,           1,  normal_pdf, 0.01, 0.5;
-    %THETA,         3.48,          0,           10, normal_pdf, 0.25, 0.0.1;
-end;
-@#endif
-
-% Simulate data
-stoch_simul(order=@{orderApp},pruning,nodisplay,nomoments,periods=500);
-save('RBC_MoM_data_@{orderApp}.mat', options_.varobs{:} );
-pause(1);
-
-
-estimated_params_init(use_calibration);
-end;
-
-%--------------------------------------------------------------------------
-% Method of Moments Estimation
-%--------------------------------------------------------------------------
-% matched_moments blocks : We don't have an interface yet
-
-% get indices in declaration order
-ic  = strmatch('c',  M_.endo_names,'exact');
-iiv = strmatch('iv', M_.endo_names,'exact');
-in  = strmatch('n',  M_.endo_names,'exact');
-% first entry: number of variable in declaration order
-% second entry: lag
-% third entry: power
-
-matched_moments_ = {
-    [ic     ]  [0   ],  [1  ];
-    [in     ]  [0   ],  [1  ];    
-    [iiv    ]  [0   ],  [1  ];
-    [ic  ic ]  [0  0],  [1 1];
-    [ic  iiv]  [0  0],  [1 1];
-    [ic  in ]  [0  0],  [1 1];
-    [iiv ic ]  [0  0],  [1 1];
-    [iiv iiv]  [0  0],  [1 1];
-    [iiv in ]  [0  0],  [1 1];
-%    [in  ic ]  [0  0],  [1 1];
-%    [in  iiv]  [0  0],  [1 1];
-    [in  in ]  [0  0],  [1 1];
-    [ic  ic ]  [0 -1],  [1 1];
-    [in  in ]  [0 -1],  [1 1];
-    [iiv iiv]  [0 -1],  [1 1];
-%    [iiv iiv]  [0 -1],  [1 1];
-};
-
-
-
-@#for mommethod in ["GMM", "SMM"]
-    method_of_moments(
-        % Necessery options
-          mom_method = @{mommethod}                  % method of moments method; possible values: GMM|SMM
-        , datafile   = 'RBC_MoM_data_@{orderApp}.mat'         % name of filename with data
-
-        % Options for both GMM and SMM
-        % , bartlett_kernel_lag = 20          % bandwith in optimal weighting matrix
-        , order = @{orderApp}                 % order of Taylor approximation in perturbation
-        % , penalized_estimator               % use penalized optimization
-        , pruning                             % use pruned state space system at higher-order
-        % , verbose                           % display and store intermediate estimation results
-        , weighting_matrix = ['optimal','optimal']      % weighting matrix in moments distance objective function; possible values: OPTIMAL|IDENTITY_MATRIX|DIAGONAL|filename
-        , weighting_matrix_scaling_factor=1
-        %, additional_optimizer_steps = [4]    % vector of additional mode-finders run after mode_compute
-        % , prefilter=0                       % demean each data series by its empirical mean and use centered moments
-        % 
-        % Options for SMM
-        % , bounded_shock_support             % trim shocks in simulation to +- 2 stdev
-        % , drop = 500                        % number of periods dropped at beginning of simulation
-        % , seed = 24051986                   % seed used in simulations
-        % , simulation_multiple = 5           % multiple of the data length used for simulation
-        % 
-        % General options
-        %, dirname = 'MM'                    % directory in which to store estimation output
-        % , graph_format = EPS                % specify the file format(s) for graphs saved to disk
-        % , nodisplay                         % do not display the graphs, but still save them to disk
-        % , nograph                           % do not create graphs (which implies that they are not saved to the disk nor displayed)
-        % , noprint                           % do not print stuff to console
-        % , plot_priors = 1                   % control plotting of priors
-        % , prior_trunc = 1e-10               % probability of extreme values of the prior density that is ignored when computing bounds for the parameters
-        % , TeX                               % print TeX tables and graphics
-        % 
-        % Data and model options
-        %, first_obs = 501                     % number of first observation
-        % , logdata                           % if loglinear is set, this option is necessary if the user provides data already in logs, otherwise the log transformation will be applied twice (this may result in complex data)
-        % , loglinear                         % computes a log-linear approximation of the model instead of a linear approximation
-        %, nobs = 500                        % number of observations
-        % , xls_sheet = willi                 % name of sheet with data in Excel
-        % , xls_range = B2:D200               % range of data in Excel sheet
-        % 
-        % Optimization options that can be set by the user in the mod file, otherwise default values are provided
-        % , analytic_derivation               % uses analytic derivatives to compute standard errors for GMM
-        %, huge_number=1D10                   % value for replacing the infinite bounds on parameters by finite numbers. Used by some optimizers for numerical reasons
-        , mode_compute = @{optimizer}         % specifies the optimizer for minimization of moments distance, note that by default there is a new optimizer
-        %, optim = ('TolFun', 1e-3
-        %           ,'TolX', 1e-5
-        %          )    % a list of NAME and VALUE pairs to set options for the optimization routines. Available options depend on mode_compute
-        %, silent_optimizer                  % run minimization of moments distance silently without displaying results or saving files in between
-        % , tolf = 1e-5                       % convergence criterion on function value for numerical differentiation
-        % , tolx = 1e-6                       % convergence criterion on funciton input for numerical differentiation
-        % 
-        % % Numerical algorithms options
-        % , aim_solver                             % Use AIM algorithm to compute perturbation approximation
-        % , dr=default                             % method used to compute the decision rule; possible values are DEFAULT, CYCLE_REDUCTION, LOGARITHMIC_REDUCTION
-        % , dr_cycle_reduction_tol = 1e-7          % convergence criterion used in the cycle reduction algorithm
-        % , dr_logarithmic_reduction_maxiter = 100 % maximum number of iterations used in the logarithmic reduction algorithm
-        % , dr_logarithmic_reduction_tol = 1e-12   % convergence criterion used in the cycle reduction algorithm
-        % , k_order_solver                         % use k_order_solver in higher order perturbation approximations
-        % , lyapunov = DEFAULT                     % algorithm used to solve lyapunov equations; possible values are DEFAULT, FIXED_POINT, DOUBLING, SQUARE_ROOT_SOLVER
-        % , lyapunov_complex_threshold = 1e-15     % complex block threshold for the upper triangular matrix in symmetric Lyapunov equation solver
-        % , lyapunov_fixed_point_tol = 1e-10       % convergence criterion used in the fixed point Lyapunov solver
-        % , lyapunov_doubling_tol = 1e-16          % convergence criterion used in the doubling algorithm
-        % , sylvester = default                    % algorithm to solve Sylvester equation; possible values are DEFAULT, FIXED_POINT
-        % , sylvester_fixed_point_tol = 1e-12      % convergence criterion used in the fixed point Sylvester solver
-        % , qz_criterium = 0.999999                % value used to split stable from unstable eigenvalues in reordering the Generalized Schur decomposition used for solving first order problems [IS THIS CORRET @wmutschl]
-        % , qz_zero_threshold = 1e-6               % value used to test if a generalized eigenvalue is 0/0 in the generalized Schur decomposition
-    );
-@#endfor
-
-
-
diff --git a/tests/estimation/method_of_moments/RBC_MoM_Andreasen.mod b/tests/estimation/method_of_moments/RBC_MoM_Andreasen.mod
new file mode 100644
index 0000000000..feb47cb3a7
--- /dev/null
+++ b/tests/estimation/method_of_moments/RBC_MoM_Andreasen.mod
@@ -0,0 +1,202 @@
+% Tests SMM and GMM routines
+%
+% Copyright (C) 2020 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/>.
+% =========================================================================
+
+% Define testscenario
+@#define orderApp = 2
+@#define estimParams = 1
+
+% Note that we will set the numerical optimization tolerance levels very large to speed up the testsuite
+@#define optimizer = 13
+
+
+@#include "RBC_MoM_common.inc"
+
+shocks;
+var u_a; stderr 0.0072;        
+end;
+
+varobs c iv n;
+
+
+@#if estimParams == 0
+estimated_params;
+    DELTA,         0.025;
+    BETTA,         0.984;
+    B,             0.5;
+    ETAc,          2;
+    ALFA,          0.667;
+    RHOA,          0.979;
+    stderr u_a,    0.0072;
+end;
+@#endif
+
+@#if estimParams == 1
+estimated_params;
+    DELTA,         ,        0,           1;
+    BETTA,         ,        0,           1;
+    B,             ,        0,           1;
+    ETAc,          ,        0,           10;
+    ALFA,          ,        0,           1;
+    RHOA,          ,        0,           1;
+    stderr u_a,    ,        0,           1;
+end;
+@#endif
+
+@#if estimParams == 2
+estimated_params;
+    DELTA,         0.025,         0,           1,  normal_pdf, 0.02, 0.5;
+    BETTA,         0.98,         0,           1,  beta_pdf, 0.90, 0.25;
+    B,             0.45,         0,           1,  normal_pdf, 0.40, 0.5;
+    %ETAl,          1,            0,           10, normal_pdf, 0.25, 0.0.1;
+    ETAc,          1.8,         0,           10, normal_pdf, 1.80, 0.5;
+    ALFA,          0.65,         0,           1,  normal_pdf, 0.60, 0.5;
+    RHOA,          0.95,         0,           1,  normal_pdf, 0.90, 0.5;
+    stderr u_a,    0.01,         0,           1,  normal_pdf, 0.01, 0.5;
+    %THETA,         3.48,          0,           10, normal_pdf, 0.25, 0.0.1;
+end;
+@#endif
+
+% Simulate data
+%stoch_simul(order=@{orderApp},pruning,nodisplay,nomoments,periods=500);
+%save('RBC_MoM_data_@{orderApp}.mat', options_.varobs{:} );
+%pause(1);
+
+
+estimated_params_init(use_calibration);
+end;
+
+%--------------------------------------------------------------------------
+% Method of Moments Estimation
+%--------------------------------------------------------------------------
+% matched_moments blocks : We don't have an interface yet
+
+% get indices in declaration order
+ic  = strmatch('c',  M_.endo_names,'exact');
+iiv = strmatch('iv', M_.endo_names,'exact');
+in  = strmatch('n',  M_.endo_names,'exact');
+% first entry: number of variable in declaration order
+% second entry: lag
+% third entry: power
+
+matched_moments_ = {
+    [ic     ]  [0   ],  [1  ];
+    [in     ]  [0   ],  [1  ];    
+    [iiv    ]  [0   ],  [1  ];
+    
+    [ic  ic ]  [0  0],  [1 1];
+    [ic  iiv]  [0  0],  [1 1];
+    %[ic  in ]  [0  0],  [1 1];
+    %[iiv ic ]  [0  0],  [1 1];
+    [iiv in ]  [0  0],  [1 1];
+    [iiv iiv]  [0  0],  [1 1];    
+    [in  ic ]  [0  0],  [1 1];
+    %[in  iiv]  [0  0],  [1 1];
+    [in  in ]  [0  0],  [1 1];
+    
+    [ic  ic ]  [0 -1],  [1 1];
+    [in  in ]  [0 -1],  [1 1];
+    [iiv iiv]  [0 -1],  [1 1];
+
+    [ic  ic ]  [0 -3],  [1 1];
+    [in  in ]  [0 -3],  [1 1];
+    [iiv iiv]  [0 -3],  [1 1];
+
+    [ic  ic ]  [0 -5],  [1 1];
+    [in  in ]  [0 -5],  [1 1];
+    [iiv iiv]  [0 -5],  [1 1];
+
+};
+
+
+
+    method_of_moments(
+        % Necessery options
+          mom_method = GMM                  % method of moments method; possible values: GMM|SMM
+        , datafile   = 'RBC_Andreasen_Data_2.mat'         % name of filename with data
+
+        % Options for both GMM and SMM
+        %, bartlett_kernel_lag = 20          % bandwith in optimal weighting matrix
+        , order = 2                 % order of Taylor approximation in perturbation
+        %, penalized_estimator               % use penalized optimization
+        %, pruning                             % use pruned state space system at higher-order
+        %, verbose                           % display and store intermediate estimation results
+        , weighting_matrix = ['DIAGONAL','OPTIMAL']      % weighting matrix in moments distance objective function; possible values: OPTIMAL|IDENTITY_MATRIX|DIAGONAL|filename
+        %, weighting_matrix_scaling_factor=1
+        , additional_optimizer_steps = [13]    % vector of additional mode-finders run after mode_compute
+        %, prefilter=0                       % demean each data series by its empirical mean and use centered moments
+        % 
+        % Options for SMM
+        %, bounded_shock_support             % trim shocks in simulation to +- 2 stdev
+        %, drop = 500                        % number of periods dropped at beginning of simulation
+        %, seed = 24051986                   % seed used in simulations
+        %, simulation_multiple = 5           % multiple of the data length used for simulation
+        %, burnin = 200
+        % 
+        % General options
+        %, dirname = 'MM'                    % directory in which to store estimation output
+        %, graph_format = EPS                % specify the file format(s) for graphs saved to disk
+        %, nodisplay                         % do not display the graphs, but still save them to disk
+        %, nograph                           % do not create graphs (which implies that they are not saved to the disk nor displayed)
+        %, noprint                           % do not print stuff to console
+        %, plot_priors = 1                   % control plotting of priors
+        %, prior_trunc = 1e-10               % probability of extreme values of the prior density that is ignored when computing bounds for the parameters
+        , TeX                               % print TeX tables and graphics
+        % 
+        % Data and model options
+        %, first_obs = 501                     % number of first observation
+        %, logdata                           % if loglinear is set, this option is necessary if the user provides data already in logs, otherwise the log transformation will be applied twice (this may result in complex data)
+        %, loglinear                         % computes a log-linear approximation of the model instead of a linear approximation
+        %, nobs = 50                        % number of observations
+        % , xls_sheet = willi                 % name of sheet with data in Excel
+        % , xls_range = B2:D200               % range of data in Excel sheet
+        % 
+        % Optimization options that can be set by the user in the mod file, otherwise default values are provided
+        %, analytic_derivation               % uses analytic derivatives to compute standard errors for GMM
+        %, huge_number=1D10                   % value for replacing the infinite bounds on parameters by finite numbers. Used by some optimizers for numerical reasons
+        , mode_compute = 13         % specifies the optimizer for minimization of moments distance, note that by default there is a new optimizer
+        , optim = ('TolFun', 1D-6
+                   ,'TolX', 1D-6
+                  )    % a list of NAME and VALUE pairs to set options for the optimization routines. Available options depend on mode_compute
+        %, silent_optimizer                  % run minimization of moments distance silently without displaying results or saving files in between
+        , se_tolx = 1e-6                       % convergence criterion on funciton input for numerical differentiation
+        % 
+        % % Numerical algorithms options
+        %, aim_solver                             % Use AIM algorithm to compute perturbation approximation
+        %, dr=DEFAULT                             % method used to compute the decision rule; possible values are DEFAULT, CYCLE_REDUCTION, LOGARITHMIC_REDUCTION
+        %, dr_cycle_reduction_tol = 1e-7          % convergence criterion used in the cycle reduction algorithm
+        %, dr_logarithmic_reduction_maxiter = 100 % maximum number of iterations used in the logarithmic reduction algorithm
+        %, dr_logarithmic_reduction_tol = 1e-12   % convergence criterion used in the cycle reduction algorithm
+        %, k_order_solver                         % use k_order_solver in higher order perturbation approximations
+        %, lyapunov = DEFAULT                     % algorithm used to solve lyapunov equations; possible values are DEFAULT, FIXED_POINT, DOUBLING, SQUARE_ROOT_SOLVER
+        %, lyapunov_complex_threshold = 1e-15     % complex block threshold for the upper triangular matrix in symmetric Lyapunov equation solver
+        %, lyapunov_fixed_point_tol = 1e-10       % convergence criterion used in the fixed point Lyapunov solver
+        %, lyapunov_doubling_tol = 1e-16          % convergence criterion used in the doubling algorithm
+        %, sylvester = default                    % algorithm to solve Sylvester equation; possible values are DEFAULT, FIXED_POINT
+        %, sylvester_fixed_point_tol = 1e-12      % convergence criterion used in the fixed point Sylvester solver
+        %, qz_criterium = 0.999999                % value used to split stable from unstable eigenvalues in reordering the Generalized Schur decomposition used for solving first order problems [IS THIS CORRET @wmutschl]
+        %, qz_zero_threshold = 1e-6               % value used to test if a generalized eigenvalue is 0/0 in the generalized Schur decomposition
+        , mode_check
+        %, mode_check_neighbourhood_size=0.5
+        %, mode_check_symmetric_plots=0
+        %, mode_check_number_of_points=25
+    );
+
+
+
diff --git a/tests/estimation/method_of_moments/RBC_MoM_SMM_ME.mod b/tests/estimation/method_of_moments/RBC_MoM_SMM_ME.mod
index a5199c1c0b..a0e4ea654c 100644
--- a/tests/estimation/method_of_moments/RBC_MoM_SMM_ME.mod
+++ b/tests/estimation/method_of_moments/RBC_MoM_SMM_ME.mod
@@ -16,11 +16,11 @@
 % =========================================================================
 
 % Define testscenario
-@#define orderApp = 2
+@#define orderApp = 1
 @#define estimParams = 0
 
 % Note that we will set the numerical optimization tolerance levels very large to speed up the testsuite
-@#define optimizer = 13
+@#define optimizer = 5
 
 @#include "RBC_MoM_common.inc"
 
@@ -33,14 +33,14 @@ varobs n c iv;
 
 @#if estimParams == 0
 estimated_params;
-    DELTA,         0.02;
-    BETTA,         0.9;
-    B,             0.4;
+    DELTA,         0.025;
+    BETTA,         0.984;
+    B,             0.5;
     %ETAl,          1;
-    ETAc,          1.5;
-    ALFA,          0.6;
-    RHOA,          0.9;
-    stderr u_a,    0.010;
+    ETAc,          1;
+    ALFA,          0.667;
+    RHOA,          0.979;
+    stderr u_a,    0.0072;
     %THETA,         3.48;
     stderr n,      0.01;
 
@@ -76,7 +76,7 @@ end;
 @#endif
 
 % Simulate data
-stoch_simul(order=@{orderApp},pruning,nodisplay,nomoments,periods=750,drop=500);
+stoch_simul(order=@{orderApp},pruning,nodisplay,nomoments,periods=250);
 save('RBC_MoM_data_@{orderApp}.mat', options_.varobs{:} );
 pause(1);
 
@@ -128,8 +128,10 @@ matched_moments_ = {
         % , penalized_estimator               % use penalized optimization
         , pruning                             % use pruned state space system at higher-order
         % , verbose                           % display and store intermediate estimation results
-        , weighting_matrix = OPTIMAL          % weighting matrix in moments distance objective function; possible values: OPTIMAL|IDENTITY_MATRIX|DIAGONAL|filename
-        , additional_optimizer_steps = [4]    % vector of additional mode-finders run after mode_compute
+        , weighting_matrix = ['identity_matrix']      % weighting matrix in moments distance objective function; possible values: OPTIMAL|IDENTITY_MATRIX|DIAGONAL|filename
+        , weighting_matrix_scaling_factor = 10
+        , burnin=250
+        %, additional_optimizer_steps = [4]    % vector of additional mode-finders run after mode_compute
         % , prefilter=0                       % demean each data series by its empirical mean and use centered moments
         % 
         % Options for SMM
diff --git a/tests/estimation/method_of_moments/RBC_MoM_prefilter.mod b/tests/estimation/method_of_moments/RBC_MoM_prefilter.mod
index de5d12d5f0..22924d0666 100644
--- a/tests/estimation/method_of_moments/RBC_MoM_prefilter.mod
+++ b/tests/estimation/method_of_moments/RBC_MoM_prefilter.mod
@@ -87,7 +87,7 @@ matched_moments_ = {
 %    [iiv iiv]  [0 -1],  [1 1];
 };
 
-weighting_matrix=diag([1000;ones(6,1)]);
+weighting_matrix=diag([1000;ones(8,1)]);
 save('test_matrix.mat','weighting_matrix')
 
 @#for mommethod in ["GMM", "SMM"]
diff --git a/tests/estimation/method_of_moments/RBC_MoM_steady_helper.m b/tests/estimation/method_of_moments/RBC_MoM_steady_helper.m
new file mode 100644
index 0000000000..08185c1e16
--- /dev/null
+++ b/tests/estimation/method_of_moments/RBC_MoM_steady_helper.m
@@ -0,0 +1,8 @@
+function N = RBC_MoM_steady_helper(THETA,ETAl,ETAc,BETTA,B,C_O_N,W)
+if ETAc == 1 && ETAl == 1
+    N = (1-BETTA*B)*(C_O_N*(1-B))^-1*W/THETA/(1+(1-BETTA*B)*(C_O_N*(1-B))^-1*W/THETA);
+else
+    % No closed-form solution use a fixed-point algorithm
+    N0 = 1/3;
+    N = fsolve(@(N) THETA*(1-N)^(-ETAl)*N^ETAc - (1-BETTA*B)*(C_O_N*(1-B))^(-ETAc)*W, N0,optimset('Display','off','TolX',1e-12,'TolFun',1e-12));
+end
\ No newline at end of file
-- 
GitLab