Hi Marco (or anyone who can answer the questions),

two quick questions:

 

1.       Is there a reason https://github.com/DynareTeam/dynare/pull/1088/commits/05fc096569e15e89d8d13b08799321c0313b168d was not ported to the diffuse filter?

2.       What is the logic behind https://github.com/DynareTeam/dynare/pull/1088/commits/93e7be66e7b08bb0fd46be7863dd9834c3baafb5 where diffuse_kalman_tol is used for evaluating the singularity of Finf, but Kalman_tol for Fstar? Isn’t that pretty much the same check for singularity of the same matrix? diffuse_kalman_tol also governs the singularity Pinf which is the criterion to leave the diffuse filter.

3. What is the reference for

if any(diag(F)<kalman_tol) || rcond(F./(sig*sig')) < kalman_tol
  if ~all(abs(F(:))<kalman_tol)

            return

        else

            a = T*a;

            P = T*P*transpose(T)+QQ;

        end

If F is singular we turn to the univariate filter if F is 0 everywhere. If F is not 0 everywhere, we continue with a Kalman gain of 0 and discard the observation from the likelihood. But the gain in this case should be more like K=P*Z'/F= P*Z'/0=Inf. Shouldn’t we generally turn to the univariate filter in this case instead of discarding the observation?

 

Best,

 

Johannes

 

------

Johannes Pfeifer

Department of Economics

University of Mannheim

L7, 3-5, Room 242

68131 Mannheim

Germany

+49 (0)621 181-3430