The generalized Schur (QZ) decomposition failed. For more information, see the documentation for Lapack function dgges: info=15, n=13. You can also run model_diagnostics to get more information on what may cause this problem

Hello there,

I am trying to replicate the results in Müller et al. (2022) in Dynare. Additionally, I want to add stock prices to test something further. To do so, I derived the non-linear Model and want to set up the dynare file for the non-linear version of the model. I think this is the most common approach to model stock prices since it is often recommended by Prof. Pfeifer in this forum (see for example the Jermann 1998 model on his guthub page). The model itself is basically the Gali and Monacelli (2005) model with some slight modifications. First, I normalize P_t^* and Y_t^* as in Müller et al. (2022). Second, the production function is simplified so that \alpha is one. Third, I use the firm problem as in Müller et al. (2022). Hence, production Y_t does not appear in the auxiliary variables but consumption, which is uncommon but in line with the model I try to replicate.
If something is still confusing, I might forgot it and I will happily explain it afterward.

Coming to my problem. The mod file is attached. I receive the following error:

The generalized Schur (QZ) decomposition failed. For more information, see the documentation for Lapack function dgges:
info=15, n=13. You can also run model_diagnostics to get more information on what may cause this problem.

From what I have read in this forum, it is difficult to say where this error stems from. I appreciate every help I can get.

P.S. I also think that I overcomplicate the stock pricing incorporation into the model. The authors in Müller et al. (2022) also provide the code and maybe there is a simpler way to introduce stock prices. I want to simulate data afterwards via a VAR-DSGE mapping and test the sign restriction approach with previous filtering of stock price movements to interest rate surprises as in Jarocinski and Karadi (2022). So, I need a proxy for stock prices or any other signal that transmits information about the true fundamentals of the interest rate surprises. I know this is a lot to ask for but maybe someone comes up with a spontaneous idea how to simplify the model since I am new to Dynare and DSGE modeling in general.

Thanks in advance and happy weekend to everyone reading this!
Best
LS

minExample.m (1.1 KB)
dynare_main_nonlinear.mod (7.9 KB)

The Model Diagnostics give this error:

MODEL_DIAGNOSTICS:  The Jacobian of the static model is singular
MODEL_DIAGNOSTICS:  there is 2 colinear relationships between the variables and the equations
Relation 1
Colinear variables:
Y
H
W
P
MC
P_hat
PHI1
PHI2
C
CPI
D
V
FX
EFX
Q
fx
Efx
Relation 2
Colinear variables:
Y
H
W
P
MC
P_hat
PHI1
PHI2
C
CPI
D
V
FX
EFX
Q
fx
Efx
Relation 1
Colinear equations
     6     9    18    19    20    22    24

Relation 2
Colinear equations
     6     9    18    19    20    22    24

MODEL_DIAGNOSTICS:  The presence of a singularity problem typically indicates that there is one
MODEL_DIAGNOSTICS:  redundant equation entered in the model block, while another non-redundant equation
MODEL_DIAGNOSTICS:  is missing. The problem often derives from Walras Law.

I cannot figure out what this means. Is one equation redundant?

An important first step is usually to drop the price level variables (which have a unit root) and then replace them by inflation rates and real variables. Your model currently has a unit root that gives rise to a collinearity warning. It makes debugging harder.
In any case, you should try to set up the model without additional features like stock prices or fancy monetary policy. Just get a simple version of the model to run and then add the desired features.

1 Like