It is now supported by the MATLAB editor (as of R2022a).
The old ASCII notation is left in some files that we copy as-is from other
sources (e.g. in the contrib/ and m4/ subdirectories).
The particles submodule is not updated at this point, because it is in an
inconsistent state.
[skip ci]
Contains improvements, in order to recover as much as possible static unobserved (filtered, smoothed, updated, k-step ahead), Variance, State_uncertainty, k-step ahead variances trying to map lagged states onto current ones using pinv(T). This has exceptions (namely lagged shocks which are ONLY used to recover static NON observed variables). this exception is also trapped.
For such extensions we can only recover smoothed variables starting from d+1. Variances CANNOT be recovered for such variables (the smoother gives ZERO.)
- kalman_algo=1: kstep-ahead variances were WRONG, since Pf was initialized using P in PREVIOUS period
- kalman_algo=2: output argument for filtered varainces should be P1, not P (P are UPDATED variances, there).
For kalman_algo=2, also make a small factorization fix (compute P(:,:,t+1) before defining Pf, so to compute 1-step ahead variance only once)
1. In case of missing observations, a_t was not propagated forward to updated a_t+1
2. In the rank-deficient Finf case, Kstar was defined as T^(-1)*K^(0), while in the full rank it was defined as Kstar=K^(0), leading to wrong results when switches between the two clauses occurred. Moreover, the later backwards pass relied on Kstar=K^(0), leading to wrong results when the rank-deficient Finf case was triggered. The implementation now consistently follows the one in kalman_filter_d.m
and corrected a bug in the code
- added missing functions missing_DiffuseKalmanSmootherH1_Z.m (multivariate version) and
missing_DiffuseKalmanSmootherH3_Z.m (univariate version)
- use only these two versions of the Kalman smoother in DsgeSmoother.m