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);
|
||||
end
|
||||
[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;
|
||||
NumberOfLagsTimesNvobs = NumberOfLags*nvobs;
|
||||
if options_.noconstant
|
||||
|
|
|
@ -257,11 +257,16 @@ end
|
|||
%% compute sample moments if needed (bvar-dsge)
|
||||
if options_.bvar_dsge~isempty(strmatch('dsge_prior_weight',M_.param_names))
|
||||
if options_.noconstant
|
||||
evalin('base',['[mYY,mXY,mYX,mXX,Ydata,Xdata] = ' ...
|
||||
'var_sample_moments(options_.first_obs,options_.first_obs+options_.nobs-1,options_.varlag,-1);'])
|
||||
evalin('base',...
|
||||
['[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!
|
||||
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
|
||||
|
||||
|
|
|
@ -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)
|
||||
% Computes the sample moments of a VAR model.
|
||||
function [YtY,XtY,YtX,XtX,Y,X] = ...
|
||||
var_sample_moments(FirstObservation,LastObservation,qlag,var_trend_order,datafile,varobs)
|
||||
% Computes the sample moments of a VAR model.
|
||||
%
|
||||
% 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 X [double] X a T*(mp+q) matrix.
|
||||
%
|
||||
|
||||
% SPECIAL REQUIREMENTS
|
||||
% None.
|
||||
%
|
||||
% part of DYNARE, copyright Dynare Team (2007)
|
||||
% Gnu Public License.
|
||||
|
||||
global options_
|
||||
|
||||
X = [];
|
||||
Y = [];
|
||||
YtY = [];
|
||||
|
@ -65,15 +61,15 @@ YtX = [];
|
|||
XtY = [];
|
||||
XtX = [];
|
||||
|
||||
if exist(options_.datafile)
|
||||
eval(options_.datafile);
|
||||
if exist(datafile)
|
||||
eval(datafile);
|
||||
else
|
||||
eval(['load ' options_.datafile]);
|
||||
eval(['load ' datafile]);
|
||||
end
|
||||
|
||||
data = [ ];
|
||||
for i=1:size(options_.varobs,1)% m is equal to options_.varobs
|
||||
data = [data eval(deblank(options_.varobs(i,:)))];
|
||||
for i=1:size(varobs,1)% m is equal to options_.varobs
|
||||
data = [data eval(deblank(varobs(i,:)))];
|
||||
end
|
||||
|
||||
if qlag > FirstObservation
|
||||
|
@ -82,14 +78,14 @@ if qlag > FirstObservation
|
|||
end
|
||||
|
||||
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.
|
||||
X = zeros(NumberOfObservations,NumberOfVariables*qlag);
|
||||
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;
|
||||
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;
|
||||
else
|
||||
disp('var_sample_moments :: trend must be equal to -1,0 or 1!')
|
||||
|
@ -98,16 +94,16 @@ end
|
|||
|
||||
% I build matrices Y and X
|
||||
Y = data(FirstObservation:LastObservation,:);
|
||||
|
||||
for t=1:NumberOfObservations
|
||||
line = t + FirstObservation-1;
|
||||
for lag = 1:qlag
|
||||
X(t,(lag-1)*NumberOfVariables+1:lag*NumberOfVariables) = data(line-lag,:);
|
||||
end
|
||||
if var_trend_order == 0
|
||||
X(t,indx) = 1;
|
||||
elseif var_trend_order == 1
|
||||
X(t,indx) = [ 1 , t ];
|
||||
end
|
||||
end
|
||||
|
||||
if (var_trend_order == 1)
|
||||
X(:,end) = transpose(1:NumberOfObservations)
|
||||
end
|
||||
|
||||
YtY = Y'*Y;
|
||||
|
|
Loading…
Reference in New Issue