provisions for init2shocks: initial conditions are added to its correspondiong shock for shock decompositions, while they are removed in initial condition decompositions.
parent
9036fae16f
commit
06c2b49897
|
@ -43,6 +43,7 @@ options_.plot_shock_decomp.nodisplay = options_.initial_condition_decomp.nodispl
|
|||
options_.plot_shock_decomp.graph_format = options_.initial_condition_decomp.graph_format;
|
||||
options_.plot_shock_decomp.fig_name = options_.initial_condition_decomp.fig_name;
|
||||
options_.plot_shock_decomp.detail_plot = options_.initial_condition_decomp.detail_plot;
|
||||
options_.plot_shock_decomp.init2shocks = options_.initial_condition_decomp.init2shocks;
|
||||
options_.plot_shock_decomp.steadystate = options_.initial_condition_decomp.steadystate;
|
||||
options_.plot_shock_decomp.write_xls = options_.initial_condition_decomp.write_xls;
|
||||
options_.plot_shock_decomp.type = options_.initial_condition_decomp.type;
|
||||
|
@ -51,6 +52,11 @@ options_.plot_shock_decomp.plot_end_date = options_.initial_condition_decomp.plo
|
|||
options_.plot_shock_decomp.diff = options_.initial_condition_decomp.diff;
|
||||
options_.plot_shock_decomp.flip = options_.initial_condition_decomp.flip;
|
||||
|
||||
if isfield(options_.initial_condition_decomp,'init2shocks') % private trap for uimenu calls
|
||||
init2shocks=options_.initial_condition_decomp.init2shocks;
|
||||
else
|
||||
init2shocks=[];
|
||||
end
|
||||
% indices of endogenous variables
|
||||
if isempty(varlist)
|
||||
varlist = M_.endo_names(1:M_.orig_endo_nbr);
|
||||
|
@ -129,6 +135,15 @@ end
|
|||
% if ~options_.no_graph.shock_decomposition
|
||||
oo=oo_;
|
||||
oo.shock_decomposition = oo_.initval_decomposition;
|
||||
if ~isempty(init2shocks)
|
||||
init2shocks = M_.init2shocks.(init2shocks);
|
||||
n=size(init2shocks,1);
|
||||
for i=1:n
|
||||
j=strmatch(init2shocks{i}{1},M_.endo_names,'exact');
|
||||
oo.shock_decomposition(:,end-1,:)=oo.shock_decomposition(:,j,:)+oo.shock_decomposition(:,end-1,:);
|
||||
oo.shock_decomposition(:,j,:)=0;
|
||||
end
|
||||
end
|
||||
M_.exo_names = M_.endo_names;
|
||||
M_.exo_nbr = M_.endo_nbr;
|
||||
options_.plot_shock_decomp.realtime=0;
|
||||
|
@ -137,4 +152,4 @@ options_.plot_shock_decomp.use_shock_groups = '';
|
|||
options_.plot_shock_decomp.init_cond_decomp = 1; % private flag to plotting utilities
|
||||
|
||||
plot_shock_decomposition(M_,oo,options_,varlist);
|
||||
% end
|
||||
% end
|
||||
|
|
|
@ -36,6 +36,16 @@ if isempty(varlist)
|
|||
varlist = M_.endo_names(1:M_.orig_endo_nbr);
|
||||
end
|
||||
|
||||
if isfield(options_.plot_shock_decomp,'init2shocks') % private trap for uimenu calls
|
||||
init2shocks=options_.plot_shock_decomp.init2shocks;
|
||||
else
|
||||
init2shocks=[];
|
||||
end
|
||||
if ~isempty(init2shocks)
|
||||
init2shocks=M_.init2shocks.(init2shocks);
|
||||
end
|
||||
|
||||
|
||||
[i_var, ~, index_uniques] = varlist_indices(varlist, M_.endo_names);
|
||||
varlist = varlist(index_uniques);
|
||||
|
||||
|
@ -151,6 +161,23 @@ switch realtime_
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
if ~isempty(init2shocks) && ~expand
|
||||
n=size(init2shocks,1);
|
||||
for i=1:n
|
||||
j=strmatch(init2shocks{i}{1},M_.endo_names,'exact');
|
||||
if ~isempty(init2shocks{i}{2})
|
||||
jj=strmatch(init2shocks{i}{2},M_.exo_names,'exact');
|
||||
z(:,jj,:)= z(:,jj,:) + oo_.initval_decomposition (:,j,:);
|
||||
else
|
||||
z(:,end,:)= z(:,end,:) - oo_.initval_decomposition (:,j,:);
|
||||
end
|
||||
z(:,end-1,:)= z(:,end-1,:) - oo_.initval_decomposition (:,j,:);
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if isfield(oo_.dr,'ys')
|
||||
steady_state = oo_.dr.ys;
|
||||
else
|
||||
|
|
|
@ -33,6 +33,7 @@ options.initial_condition_decomp.nodisplay = false;
|
|||
options.initial_condition_decomp.graph_format = 'eps';
|
||||
options.initial_condition_decomp.fig_name = '';
|
||||
options.initial_condition_decomp.detail_plot = false;
|
||||
options.initial_condition_decomp.init2shocks = [];
|
||||
options.initial_condition_decomp.steadystate = false;
|
||||
options.initial_condition_decomp.write_xls = false;
|
||||
options.initial_condition_decomp.type = '';
|
||||
|
|
|
@ -33,6 +33,7 @@ options.plot_shock_decomp.colormap = '';
|
|||
options.plot_shock_decomp.nodisplay = false;
|
||||
options.plot_shock_decomp.graph_format = 'eps';
|
||||
options.plot_shock_decomp.detail_plot = false;
|
||||
options.plot_shock_decomp.init2shocks = [];
|
||||
options.plot_shock_decomp.interactive = false;
|
||||
options.plot_shock_decomp.screen_shocks = false;
|
||||
options.plot_shock_decomp.steadystate = false;
|
||||
|
|
Loading…
Reference in New Issue