I am testing a BGG-RBC model, which contains two thresholds (ome1, ome2). Though I successfully saw the IRFs, I still found several problems.
Some results of IRF don’t conform with my expectation. For example, when sigma (exogenous risk shock) rises, y (output) rises too, which is a wrong result, at least in accordance with my personal analysis.
I guess it is caused by code “predetermined_variables”. I think I have added too many predetermined variables. But if I delete them all, BK conditions will not be satisfied. It is a dilemma for me.
Timing means the period in which something is determined. The Dynare timing convention is documented in e.g. the Dynare manual. You already corrected the timing of k(+1) by declaring it a predetermined_variables k. But the same does not make sense for re. By declaring it predetermined, you are saying it’s value was already perfectly known at t-1
Again, there is one unique correct timing. You cannot simply change the timing of one variable in an incoherent model and expect the results to run. You need to systematically debug the issue, ideally starting from the easiest model version that works.
Today I have checked the basic BGG_RBC model. I have found that at least there are two main reasons for the problem that BK conditions are not satisfied.
Equation omitted. Usually when all the equations are calculated but there are some not being converted into dynare code, causing equation and variable omitted.
Timing of variables. I guess there must be other variables (except K) which are predetermined so that when typing the code, these variables should be posted in the period of t, instead of (+1), for example, the value of a firm.
What I write above is my personal thought of today’s study.