Is the macroeconomy too complex and uncertain to be represented by a single model?

Why is it interesting?
Recognizing that the macroeconomy is too complex and uncertain to be represented by a single model, this comparison of 11 models, with a focus on the Euro Area, confirms that an optimized policy rule specific to a model would induce greater macroeconomic fluctuations. A generalized policy rule derived by averaging over the 11 models is more robust.

What to do on the MMB?
  • Models: EA_AWM05; G7_TAY93, EA_CW05fm, EA_CW05ta, G3_CW03; EA_SW03, EACZ_GEM03, EA_SR07, EA_QUEST3; EA_CKL09, EA_GNSS10
  • Policy Rules: Gerdesmeier & Roffia (2004)
  • Shocks: Monetary Policy Shock
  • Variables: Inflation, Output

What is interesting?
The 11 models range from a traditional Keynesian model (EA_AWM05), the first wave of New Keynesian models (G7_TAY93, EA_CW05fm, EA_CW05ta, G3_CW03), modern NK models (EA_SW03, EACZ_GEM03, EA_SR07, EA_QUEST3) to NK models with frictions (EA_CKL09, EA_GNSS10). Since a generalized policy rule is introduced to all the 11 models, different impulse responses in these models result from their different structural assumptions and parameter estimations. All the models exhibit Keynesian features, i.e., following a positive monetary policy shock, inflation falls (due to nominal rigidities) and the reaction is more slowly as it is a response to output decrease. (CH)

Reference: Orphanides A. & Wieland V. (2012)
Edited by Huang C.C.


  1. Congratulations for the project! Is it possible to change the magnitude of a shock by changing the values of the shock parameter?
    thanks in advance.

  2. Congratulations for the project! Is it possible to change the magnitude of a shock by changing the values of the shock parameter?
    thanks in advance.

  3. Alexander Dück (AD)March 25, 2020 at 10:30 AM


    thank you for the congratulations and your comment.

    It is possible to change the magnitude of shocks, however it is somewhat cumbersome. For all models under consideration you need to the following steps:
    - Open the .mod file of the model (either in the models folder or in the GUI --> Menu --> Edit Rules/Models).
    - In the model block you can set a factor in the equation of the shock, which magnitude you want to change. This factor should be in front of the exogenous shock.

    Remember that in the GUI you need to click SAVE for every model you are changing. Also, you need to click Menu --> Reload Data to apply changes.

    Here a quick example:
    You want to investigate a 2% monetary policy shock as well as a 3% technology shock for a New Keynesian model (say: NK_BGEU10).

    Open MMB, click Menu --> Edit Rules/Models, go to NK_BGEU10, then NK_BGEU.mod.
    Look for the equation where the monetary policy shock (interest_) is introduced. In this case it is the Monetary Policy rule equation (lines 121-152 in my version).
    Instead of "+std_r_ *interest_;" you should write "+ 2*std_r_ *interest_"
    (For government spending shock, it would be analogously for "fispol =factor* coffispol*fiscal_; " )

    Then you find the equation for technology shock, which is the last one in the model block (line 184 in my version) to write "a = ra*a(-1) - 3*a_;" here for the 3% shock.

    Don't forget to click on SAVE now before optionally going to another model to do the steps again.
    After you have done this for all the models you want to simulate, click on Menu --> Reload Data.
    Then you can check the models, a policy rule, and the shocks and variables of your choice and click "Compare".

    The magnitude of the shocks is 2 times and 3 times larger than before, as it should be.

    Hope this helped!

  4. Thank you very much again, it works perfectly fine .

    how could I do a positive markup shock in EA_QUEST3 or PV17?

    I get the following errors for any shock in EA_QUEST3:

    Index exceeds the number of array elements (145).
    EA_QUEST3_static.m, function 'EA_QUEST3_static', line 34

    evaluate_steady_state.m, function 'static_problem', line 341

    dynare_solve.m, function 'dynare_solve', line 67

    evaluate_steady_state.m, function 'evaluate_steady_state', line 223

    resol_MMB.m, function 'resol_MMB', line 104

    stoch_simul_MMB.m, function 'stoch_simul_MMB', line 140

    run_dynare_and_simulate.m, function 'run_dynare_and_simulate', line 15

    run_model_with_rules.m, function 'run_model_with_rules', line 35

    mmb.m, function 'mmb', line 36

    EA_PV17 works for me, but I don´t know how to change the mark up shock, could you help me in finding where is the mark up shock in line in the EA_PV17.mod file ?

    Again thank you for your work.

    Best regards,
    Carlos Merino Troncoso

  5. Alexander Dück (AD)March 27, 2020 at 7:31 AM

    I can not replicate your error. Did you change the .mod file in other lines? It seems that the steady state of your version of the Quest model can not be evaluated. This indicated that at least one equation is wrong and there is no steady state.

    If you don't want to change the model by much, I recommend to donwload the MMB again to get a running version of the Quest model.

    The price markup shocks in these two models should be positive in MMB 3.1. So if you check price markup shock on the MMB interface, check both models mentioned above and a policy rule, it should be fine.

    However, if you want to change the sign of the price markup shock in these models, you can change the sign of the exogenous shock in the endogenous price markup shock process.

    For EA_PV17, the exogenous price markup shock is "ea_eps_eta" and the corresponding endogenous process is "ea_eta", so you should change the sign in line 525 (of the version I use. It is approximately the 20th equation after the fispol equation).

    For EA_Quest3, the exogenous price markup shock is "E_EPS_ETA" and the price markup shock equation is in line 447.

    This worked fine for me.

    Hope this helps!

    Best regards,

    If you have any problems, you can also send me an Email, so I can send you (parts) of the code. This is mostly easier.


  6. I followed your instructions and it works fine.

    One last question, price mark-up shock is of 1%? Could I then ea_eps_eta by 0.5 to get a shock of 0,5 percentage points?

    thanks again,
    Best regards,

  7. Alexander Dück (AD)March 30, 2020 at 2:01 AM

    Good to hear.

    Yes, writing "0.5*ea_eps_eta" corresponds to a 0.5% price mark-up shock.

    Best regards,

  8. Good afternoon,

    I am trying to compare a price mark-up shock in two models from your database: PV-17 and QUEST III.

    I am having trouble obtaining an IRF graph for output growth in the QUEST III model, while for the PV17 I have obtained all graphs.

    Do I have to introduce changes in .mod file of QUEST III to obtain IRFgraph of output in a price markup simulation?
    Thanks in advance.
    Best regards,


Post a Comment