Cosmetic change in var_sample_moments + Removed one global.
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1880 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
2a632d2efc
commit
8ba344b786
|
@ -116,7 +116,8 @@ if MAX_nirfs_dsgevar
|
||||||
stock_irf_bvardsge = zeros(options_.irf,nvobs,M_.exo_nbr,B);
|
stock_irf_bvardsge = zeros(options_.irf,nvobs,M_.exo_nbr,B);
|
||||||
end
|
end
|
||||||
[mYY,mXY,mYX,mXX,Ydata,Xdata] = ...
|
[mYY,mXY,mYX,mXX,Ydata,Xdata] = ...
|
||||||
var_sample_moments(options_.first_obs,options_.first_obs+options_.nobs-1,options_.varlag,-1);
|
var_sample_moments(options_.first_obs,options_.first_obs+options_.nobs-1,...
|
||||||
|
options_.varlag,-1,options_.datafile,options_.varobs);
|
||||||
NumberOfLags = options_.varlag;
|
NumberOfLags = options_.varlag;
|
||||||
NumberOfLagsTimesNvobs = NumberOfLags*nvobs;
|
NumberOfLagsTimesNvobs = NumberOfLags*nvobs;
|
||||||
if options_.noconstant
|
if options_.noconstant
|
||||||
|
|
|
@ -257,11 +257,16 @@ end
|
||||||
%% compute sample moments if needed (bvar-dsge)
|
%% compute sample moments if needed (bvar-dsge)
|
||||||
if options_.bvar_dsge~isempty(strmatch('dsge_prior_weight',M_.param_names))
|
if options_.bvar_dsge~isempty(strmatch('dsge_prior_weight',M_.param_names))
|
||||||
if options_.noconstant
|
if options_.noconstant
|
||||||
evalin('base',['[mYY,mXY,mYX,mXX,Ydata,Xdata] = ' ...
|
evalin('base',...
|
||||||
'var_sample_moments(options_.first_obs,options_.first_obs+options_.nobs-1,options_.varlag,-1);'])
|
['[mYY,mXY,mYX,mXX,Ydata,Xdata] = ' ...
|
||||||
|
'var_sample_moments(options_.first_obs,' ...
|
||||||
|
'options_.first_obs+options_.nobs-1,options_.varlag,-1,' ...
|
||||||
|
'options_.datafile, options_.varobs);'])
|
||||||
else% The steady state is non zero ==> a constant in the VAR is needed!
|
else% The steady state is non zero ==> a constant in the VAR is needed!
|
||||||
evalin('base',['[mYY,mXY,mYX,mXX,Ydata,Xdata] = ' ...
|
evalin('base',['[mYY,mXY,mYX,mXX,Ydata,Xdata] = ' ...
|
||||||
'var_sample_moments(options_.first_obs,options_.first_obs+options_.nobs-1,options_.varlag,0);'])
|
'var_sample_moments(options_.first_obs,' ...
|
||||||
|
'options_.first_obs+options_.nobs-1,options_.varlag,0,' ...
|
||||||
|
'options_.datafile, options_.varobs);'])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
function [YtY,XtY,YtX,XtX,Y,X] = var_sample_moments(FirstObservation,LastObservation,qlag,var_trend_order)
|
function [YtY,XtY,YtX,XtX,Y,X] = ...
|
||||||
|
var_sample_moments(FirstObservation,LastObservation,qlag,var_trend_order,datafile,varobs)
|
||||||
% function [YtY,XtY,YtX,XtX,Y,X] = var_sample_moments(FirstObservation,LastObservation,qlag,var_trend_order)
|
% Computes the sample moments of a VAR model.
|
||||||
% Computes the sample moments of a VAR model.
|
|
||||||
%
|
%
|
||||||
% The VAR(p) model is defined by:
|
% The VAR(p) model is defined by:
|
||||||
%
|
%
|
||||||
|
@ -49,15 +48,12 @@ function [YtY,XtY,YtX,XtX,Y,X] = var_sample_moments(FirstObservation,LastObserva
|
||||||
% o Y [double] Y a T*m matrix.
|
% o Y [double] Y a T*m matrix.
|
||||||
% o X [double] X a T*(mp+q) matrix.
|
% o X [double] X a T*(mp+q) matrix.
|
||||||
%
|
%
|
||||||
|
|
||||||
% SPECIAL REQUIREMENTS
|
% SPECIAL REQUIREMENTS
|
||||||
% None.
|
% None.
|
||||||
%
|
%
|
||||||
% part of DYNARE, copyright Dynare Team (2007)
|
% part of DYNARE, copyright Dynare Team (2007)
|
||||||
% Gnu Public License.
|
% Gnu Public License.
|
||||||
|
|
||||||
global options_
|
|
||||||
|
|
||||||
X = [];
|
X = [];
|
||||||
Y = [];
|
Y = [];
|
||||||
YtY = [];
|
YtY = [];
|
||||||
|
@ -65,15 +61,15 @@ YtX = [];
|
||||||
XtY = [];
|
XtY = [];
|
||||||
XtX = [];
|
XtX = [];
|
||||||
|
|
||||||
if exist(options_.datafile)
|
if exist(datafile)
|
||||||
eval(options_.datafile);
|
eval(datafile);
|
||||||
else
|
else
|
||||||
eval(['load ' options_.datafile]);
|
eval(['load ' datafile]);
|
||||||
end
|
end
|
||||||
|
|
||||||
data = [ ];
|
data = [ ];
|
||||||
for i=1:size(options_.varobs,1)% m is equal to options_.varobs
|
for i=1:size(varobs,1)% m is equal to options_.varobs
|
||||||
data = [data eval(deblank(options_.varobs(i,:)))];
|
data = [data eval(deblank(varobs(i,:)))];
|
||||||
end
|
end
|
||||||
|
|
||||||
if qlag > FirstObservation
|
if qlag > FirstObservation
|
||||||
|
@ -82,14 +78,14 @@ if qlag > FirstObservation
|
||||||
end
|
end
|
||||||
|
|
||||||
NumberOfObservations = LastObservation-FirstObservation+1;% This is T.
|
NumberOfObservations = LastObservation-FirstObservation+1;% This is T.
|
||||||
NumberOfVariables = size(options_.varobs,1);% This is m.
|
NumberOfVariables = size(varobs,1);% This is m.
|
||||||
if var_trend_order == -1% No constant no linear trend case.
|
if var_trend_order == -1% No constant no linear trend case.
|
||||||
X = zeros(NumberOfObservations,NumberOfVariables*qlag);
|
X = zeros(NumberOfObservations,NumberOfVariables*qlag);
|
||||||
elseif var_trend_order == 0% Constant and no linear trend case.
|
elseif var_trend_order == 0% Constant and no linear trend case.
|
||||||
X = zeros(NumberOfObservations,NumberOfVariables*qlag+1);
|
X = ones(NumberOfObservations,NumberOfVariables*qlag+1);
|
||||||
indx = NumberOfVariables*qlag+1;
|
indx = NumberOfVariables*qlag+1;
|
||||||
elseif var_trend_order == 1;% Constant and linear trend case.
|
elseif var_trend_order == 1;% Constant and linear trend case.
|
||||||
X = zeros(NumberOfObservations,NumberOfVariables*qlag+2);
|
X = ones(NumberOfObservations,NumberOfVariables*qlag+2);
|
||||||
indx = NumberOfVariables*qlag+1:NumberOfVariables*qlag+2;
|
indx = NumberOfVariables*qlag+1:NumberOfVariables*qlag+2;
|
||||||
else
|
else
|
||||||
disp('var_sample_moments :: trend must be equal to -1,0 or 1!')
|
disp('var_sample_moments :: trend must be equal to -1,0 or 1!')
|
||||||
|
@ -98,16 +94,16 @@ end
|
||||||
|
|
||||||
% I build matrices Y and X
|
% I build matrices Y and X
|
||||||
Y = data(FirstObservation:LastObservation,:);
|
Y = data(FirstObservation:LastObservation,:);
|
||||||
|
|
||||||
for t=1:NumberOfObservations
|
for t=1:NumberOfObservations
|
||||||
line = t + FirstObservation-1;
|
line = t + FirstObservation-1;
|
||||||
for lag = 1:qlag
|
for lag = 1:qlag
|
||||||
X(t,(lag-1)*NumberOfVariables+1:lag*NumberOfVariables) = data(line-lag,:);
|
X(t,(lag-1)*NumberOfVariables+1:lag*NumberOfVariables) = data(line-lag,:);
|
||||||
end
|
end
|
||||||
if var_trend_order == 0
|
end
|
||||||
X(t,indx) = 1;
|
|
||||||
elseif var_trend_order == 1
|
if (var_trend_order == 1)
|
||||||
X(t,indx) = [ 1 , t ];
|
X(:,end) = transpose(1:NumberOfObservations)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
YtY = Y'*Y;
|
YtY = Y'*Y;
|
||||||
|
|
Loading…
Reference in New Issue