Some elements were simply left out. This commit now mimics the computations as in th_autocovariances.m and makes sure the loss function coincides with the one that is obtained by reading out the covariance from oo_.var
M_.params is global and was set by csminwel1 to the last value tested; this does not necessarily coincide with the optimal parameter vector, which may have occurred earlier. This commit explicitly sets the optimal parameter vector.
If the objective function only has one element, the scalar product of a sparse matrix and a full matrix is sparse (in contrast to two or more elements). This crashes the osr code subsequently.
It was erroneously completely moved to dyn_second_order_solver.m in the 4.3 branch when cleaning up dr1.m. Without this reordering, decision rules for exogenous deterministic variables at second order are wrong
Due to the preprocessor adding entries for all variable combination into i_var, variables contained in covariances obtained a wrong weighting. By only selecting the unique entries, this cannot happen anymore. Moreover, the computation intensity of the objective does not increase quadratically in the objective anymore.
even if there is a single shock. In that case variance decomposition
is one. It is better if Gamma_y has always the expected
size. disp_th_moments.m only displays variance decomposition if there
is more than one shock.
In case of no steady state file, they are identical, but with a steady state file, they are not. Moreover, this fixes a problem with the dimension of the input to the steady state file. ys was not initialized and had wrong dimensions
Also adds comments to file.
If some parameters are NaN after computing the steady state, the message erroneously said that parameters had been changed. In a check for equality, NaN is not equal to NaN. Thus, NaNs are now taken care of separately.
If the m data file is in the current directory, the first output of
fileparts(options_.datafile) is an empty string. In Matlab the command
cd('') fails, but Octave does not fail in this case (and does nothing).
Added a test on the first output of fileparts, if this output is empty
we do not try to change the current directory.
* Second and third positional arguments after the name of the
estimated parameter in the estimated_params block are only
considered in the optimization stage (not in the MCMC)
* Do not store bounds in bayestopt_, because bounds do not always
reflect restrictions implied by prior shapes.
* prior_bounds routine returns a structure (with fields lb and ub)
instead of a matrix.
Because xparam1 is used by the smoother, but xparam was set to the posterior mean, the non-Bayesian smoother results were based on the parameters at the mode, which are stored in xparam1.
Test was introduced in b11d14498aadac17c08b08dd80b6daf7dec9e340.
The binary file was a mat file containing a posterior mode, and the
second estimation must be run iff the control toolbox is available.