I have constructed a large model including a rich set of shocks (more than 15 shocks). I use the “shock_decomposition” command to produce the historical shock decomposition graph. Since some shocks only show minor effects on the variance of endogenous variables, I want to only show some important shocks, say whose contribution are larger than 5% in the variance decomposition in the graph, rather than the graph including the whole set of shocks directly generated by dynare. For example, I have shocks A B C D. I just want to show shock A and B in the graph of shock decomposition, and combine shock C and D together and name them as E in the graph. Is it possible in dynare?

Thanks for your reply. I know that all results of shock_decomposition is stored in oo_.shock_decomposition. But because of my large model and rick set of shocks, the matlab cannot display all the elements. Is there a way to get out all the results, say the elements in oo_.shock_decomposition? So that I can put them in excel and draw the graph.

Regarding the “xlswrite” function, please could you give me an example of how to export the shock decomposition results to Excel/Matlab ( plotting)?
Best

As Johannes said, it is also easy to write the shock decomposition directly to an xls file using the standard xlswrite function. It may be useful to see the order in which shock contributions are ordered at the beginning of the webpage.

I have tried to add “write_xls” function to the option of shock decomposition command: shock_groups(name=group1); ‘A shock’=ew; ‘B shock’=eqs,eg; ’ C shock’=ea; ‘D shock’=em; end; shock_decomposition (use_shock_groups=group1,write_xls)y; however, it reports " ERROR: usmodel.mod: line 855, c…

please see attached the file (line 855)usmodel.mod (22.9 KB)

This command plots the historical shock decomposition already computed by shock_decomposition or realtime_shock_decomposition . For that reason, it must come after one of these commands. The variable_names provided govern which variables the decomposition is plotted for.