Adapted matlab routines to recent changes in preprocessor.

time-shift
Stéphane Adjemian(Charybdis) 2018-05-16 21:31:31 +02:00
parent e62c2272b4
commit a4120a84b6
2 changed files with 10 additions and 10 deletions

View File

@ -62,7 +62,7 @@ if ~isfield(varcalib, 'CompanionMatrix') || any(isnan(varcalib.CompanionMatrix(:
end
% Build the vector of PAC parameters (ECM parameter + autoregressive parameters).
pacvalues = DynareModel.params(pacmodel.equation_params);
pacvalues = DynareModel.params([pacmodel.ec.params; pacmodel.ec.params]);
% Get the indices for the stationary/nonstationary variables in the VAR system.
if any(varmodel.nonstationary)

View File

@ -32,30 +32,30 @@ global oo_
get_ar_ec_matrices(var_model_name);
% Get the number of lags
p = length(oo_.var.(var_model_name).ar);
p = size(oo_.var.(var_model_name).ar, 3);
% Get the number of variables
n = length(oo_.var.(var_model_name).ar{1});
n = length(oo_.var.(var_model_name).ar(:,:,1));
if all(cellfun(@iszero, oo_.var.(var_model_name).ecm))
if all(~oo_.var.(var_model_name).ec(:))
% Build the companion matrix (standard VAR)
oo_.var.(var_model_name).CompanionMatrix = zeros(n*p);
oo_.var.(var_model_name).CompanionMatrix(1:n,1:n) = oo_.var.(var_model_name).ar{1};
oo_.var.(var_model_name).CompanionMatrix(1:n,1:n) = oo_.var.(var_model_name).ar(:,:,1);
if p>1
for i=2:p
oo_.var.(var_model_name).CompanionMatrix(1:n,(i-1)*n+(1:n)) = oo_.var.(var_model_name).ar{i};
oo_.var.(var_model_name).CompanionMatrix(1:n,(i-1)*n+(1:n)) = oo_.var.(var_model_name).ar(:,:,i);
oo_.var.(var_model_name).CompanionMatrix((i-1)*n+(1:n),(i-2)*n+(1:n)) = eye(n);
end
end
else
B = zeros(n,n,p+1);
idx = oo_.var.(var_model_name).ecm_idx;
B(:,:,1) = oo_.var.(var_model_name).ar{1};
idx = oo_.var.(var_model_name).ec_idx;
B(:,:,1) = oo_.var.(var_model_name).ar(:,:,1);
B(idx, idx, 1) = B(idx,idx, 1) + eye(length(idx));
for i=2:p
B(idx,idx,i) = oo_.var.(var_model_name).ar{i}(idx,idx)-oo_.var.(var_model_name).ar{i-1}(idx,idx);
B(idx,idx,i) = oo_.var.(var_model_name).ar(idx,idx,i)-oo_.var.(var_model_name).ar(idx,idx,i-1);
end
B(idx,idx,p+1) = -oo_.var.(var_model_name).ar{p}(idx,idx);
B(idx,idx,p+1) = -oo_.var.(var_model_name).ar(idx,idx,p);
% Build the companion matrix (VECM, rewrite in levels)
oo_.var.(var_model_name).CompanionMatrix = zeros(n*(p+1));
for i=1:p