parent
dcf0d75d55
commit
6a3c2b7b44
|
@ -1,5 +1,16 @@
|
||||||
function yf=forcst2(y0,horizon,dr,n)
|
function yf=forcst2(y0,horizon,dr,n)
|
||||||
|
% function yf=forcst2(y0,horizon,dr,n)
|
||||||
|
%
|
||||||
|
% computes forecasts based on first order model solution, given shocks drawn from the shock distribution
|
||||||
|
% Inputs:
|
||||||
|
% - y0 [endo_nbr by maximum_endo_lag] matrix of starting values
|
||||||
|
% - dr [structure] structure with Dynare decision rules
|
||||||
|
% - e [horizon by exo_nbr] matrix with shocks
|
||||||
|
% - n [scalar] number of repetitions
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - yf [horizon+ykmin_ by endo_nbr by n] array of forecasts
|
||||||
|
%
|
||||||
% Copyright (C) 2008-2010 Dynare Team
|
% Copyright (C) 2008-2010 Dynare Team
|
||||||
%
|
%
|
||||||
% This file is part of Dynare.
|
% This file is part of Dynare.
|
||||||
|
@ -24,14 +35,10 @@ endo_nbr = M_.endo_nbr;
|
||||||
exo_nbr = M_.exo_nbr;
|
exo_nbr = M_.exo_nbr;
|
||||||
ykmin_ = M_.maximum_endo_lag;
|
ykmin_ = M_.maximum_endo_lag;
|
||||||
|
|
||||||
order = options_.order;
|
|
||||||
|
|
||||||
k1 = [ykmin_:-1:1];
|
k1 = [ykmin_:-1:1];
|
||||||
k2 = dr.kstate(find(dr.kstate(:,2) <= ykmin_+1),[1 2]);
|
k2 = dr.kstate(find(dr.kstate(:,2) <= ykmin_+1),[1 2]);
|
||||||
k2 = k2(:,1)+(ykmin_+1-k2(:,2))*endo_nbr;
|
k2 = k2(:,1)+(ykmin_+1-k2(:,2))*endo_nbr;
|
||||||
|
|
||||||
it_ = ykmin_ + 1 ;
|
|
||||||
|
|
||||||
% eliminate shocks with 0 variance
|
% eliminate shocks with 0 variance
|
||||||
i_exo_var = setdiff([1:exo_nbr],find(diag(Sigma_e_) == 0));
|
i_exo_var = setdiff([1:exo_nbr],find(diag(Sigma_e_) == 0));
|
||||||
nxs = length(i_exo_var);
|
nxs = length(i_exo_var);
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
function yf=forcst2a(y0,dr,e)
|
function yf=forcst2a(y0,dr,e)
|
||||||
|
% function yf=forcst2a(y0,dr,e)
|
||||||
% Copyright (C) 2008-2010 Dynare Team
|
% computes forecasts based on first order model solution, assuming the absence of shocks
|
||||||
|
% Inputs:
|
||||||
|
% - y0 [endo_nbr by maximum_endo_lag] matrix of starting values
|
||||||
|
% - dr [structure] structure with Dynare decision rules
|
||||||
|
% - e [horizon by exo_nbr] matrix with shocks
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - yf [horizon+maximum_endo_lag,endo_nbr] matrix of forecasts
|
||||||
|
%
|
||||||
|
% Copyright (C) 2008-2015 Dynare Team
|
||||||
%
|
%
|
||||||
% This file is part of Dynare.
|
% This file is part of Dynare.
|
||||||
%
|
%
|
||||||
|
@ -19,13 +28,10 @@ function yf=forcst2a(y0,dr,e)
|
||||||
|
|
||||||
global M_ options_
|
global M_ options_
|
||||||
|
|
||||||
Sigma_e_ = M_.Sigma_e;
|
|
||||||
endo_nbr = M_.endo_nbr;
|
endo_nbr = M_.endo_nbr;
|
||||||
exo_nbr = M_.exo_nbr;
|
|
||||||
ykmin_ = M_.maximum_endo_lag;
|
ykmin_ = M_.maximum_endo_lag;
|
||||||
|
|
||||||
horizon = size(e,1);
|
horizon = size(e,1);
|
||||||
order = options_.order;
|
|
||||||
|
|
||||||
k1 = [ykmin_:-1:1];
|
k1 = [ykmin_:-1:1];
|
||||||
k2 = dr.kstate(find(dr.kstate(:,2) <= ykmin_+1),[1 2]);
|
k2 = dr.kstate(find(dr.kstate(:,2) <= ykmin_+1),[1 2]);
|
||||||
|
|
Loading…
Reference in New Issue