diff --git a/doc/manual/source/the-model-file.rst b/doc/manual/source/the-model-file.rst index d06b18e1c89c1373d55e4a12307de10db098b185..06f8983352046134c4dcfe11108565a458269ef6 100644 --- a/doc/manual/source/the-model-file.rst +++ b/doc/manual/source/the-model-file.rst @@ -3101,8 +3101,11 @@ Finding the steady state with Dynare nonlinear solver .. option:: markowitz = DOUBLE - Value of the Markowitz criterion, used to select the - pivot. Only used when ``solve_algo = 5``. Default: 0.5. + Value of the Markowitz criterion (:math:(0,\infty)`) used to select the + pivot with sparse Gaussian elimination (``solve_algo = 5``). This criterion + governs the tradeoff between selecting the pivot resulting in the most + accurate solution (low ``markowitz`` values) and the one that preserves + maximum sparsity (high ``markowitz`` values). Default: 0.5. *Example* @@ -5374,6 +5377,11 @@ All of these elements are discussed in the following. to NaN and the standard deviation of the associated shock set to 0 for the corresponding periods using the ``heteroskedastic_shocks``-block. + Note that models with unit roots will require the user to specify the ``diffuse_filter``-option as + otherwise Blanchard-Kahn errors will be triggered. For the piecewise Kalman filter, the + initialization steps in the diffuse filter will always rely on the model solved for the baseline + regime, without checking whether this is the actual regime in the first period(s). + *Example* :: @@ -5482,7 +5490,8 @@ All of these elements are discussed in the following. .. option:: likelihood_piecewise_kalman_filter Employ the piecewise Kalman filter of *Giovannini, Pfeiffer, and Ratto (2021)* when estimating - the model. Default: enabled. + the model. Note that this filter is incompatible with univariate Kalman filters, i.e. ``kalman_algo=2,4``. + Default: enabled. .. option:: likelihood_max_kalman_iterations @@ -7513,7 +7522,9 @@ block decomposition of the model (see :opt:`block`). Koopman (2012)* and *Koopman and Durbin (2003)* for the multivariate and *Koopman and Durbin (2000)* for the univariate filter) to estimate models with non-stationary observed - variables. + variables. This option will also reset the ``qz_criterium`` to + count unit root variables towards the stable variables. Trying to estimate + a model with unit roots will otherwise result in a Blanchard-Kahn error. When ``diffuse_filter`` is used the ``lik_init`` option of ``estimation`` has no effect. diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m index 733c23744b7b1efbc495b693524571cdb3612808..4c3bd3fd58008c6b14f6a48b296ba9e0704ae812 100644 --- a/matlab/initial_estimation_checks.m +++ b/matlab/initial_estimation_checks.m @@ -20,7 +20,7 @@ function DynareResults = initial_estimation_checks(objective_function,xparam1,Dy % SPECIAL REQUIREMENTS % none -% Copyright © 2003-2018 Dynare Team +% Copyright © 2003-2022 Dynare Team % % This file is part of Dynare. % @@ -80,6 +80,12 @@ if DynareOptions.occbin.likelihood.status || DynareOptions.occbin.smoother.statu if DynareOptions.prefilter error('initial_estimation_checks:: Occbin is incompatible with the prefilter option due to the sample mean generally not corresponding to the steady state with an occasionally binding constraint.') end + if ~DynareOptions.occbin.likelihood.inversion_filter && (DynareOptions.kalman_algo==2 || DynareOptions.kalman_algo==4) + error('initial_estimation_checks:: Occbin is incompatible with the selected univariate Kalman filter.') + end + if DynareOptions.fast_kalman_filter + error('initial_estimation_checks:: Occbin is incompatible with the fast Kalman filter.') + end end if (DynareOptions.occbin.likelihood.status && DynareOptions.occbin.likelihood.inversion_filter) || (DynareOptions.occbin.smoother.status && DynareOptions.occbin.smoother.inversion_filter)