Revert "var_forecast: simplify calculation in function" (only works for 1-step-ahead forecast)
This reverts commit 079c6ce8a1e0cacfe98915d8bf554d3ba1ba0de1.time-shift
parent
113fbd4866
commit
1ae6c9a634
|
@ -55,16 +55,22 @@ end
|
||||||
if M_.var.(var_model_name).order > 1
|
if M_.var.(var_model_name).order > 1
|
||||||
mu = [mu; zeros(lm*M_.var.(var_model_name).order-lm, 1)];
|
mu = [mu; zeros(lm*M_.var.(var_model_name).order-lm, 1)];
|
||||||
end
|
end
|
||||||
|
fprintf(fid, '%%%% Calculate 1-step-ahead forecast\n');
|
||||||
|
fprintf(fid, 'y = [');
|
||||||
|
fprintf(fid, [repmat(' %f ', 1, size(mu, 2)) ';'], mu');
|
||||||
|
fprintf(fid, '] + [');
|
||||||
|
fprintf(fid, [repmat(' %f ', 1, size(A, 2)) ';'], A');
|
||||||
|
fprintf(fid, ']*y(:);\n');
|
||||||
|
fprintf(fid, 'y = y(1:%d);\n', lm);
|
||||||
|
|
||||||
retidx = find(strcmp(dwrt, endo_names) & yidx == 1);
|
retidx = find(strcmp(dwrt, endo_names) & yidx == 1);
|
||||||
assert(~isempty(retidx));
|
if isempty(retidx)
|
||||||
if retidx ~= 1
|
return;
|
||||||
retidx = sum(yidx(1:retidx-1))+1;
|
elseif retidx == 1
|
||||||
|
fprintf(fid, 'y = y(1);\n');
|
||||||
|
else
|
||||||
|
fprintf(fid, 'y = y(%d);\n', sum(yidx(1:retidx-1))+1);
|
||||||
end
|
end
|
||||||
fprintf(fid, '%%%% Calculate 1-step-ahead forecast\n');
|
|
||||||
fprintf(fid, 'y = %f + [', mu(retidx));
|
|
||||||
fprintf(fid, [repmat(' %f ', 1, size(A, 2)) ';'], A(retidx,:)');
|
|
||||||
fprintf(fid, ']*y;\n');
|
|
||||||
|
|
||||||
%% close file
|
%% close file
|
||||||
fprintf(fid, 'end\n');
|
fprintf(fid, 'end\n');
|
||||||
|
|
Loading…
Reference in New Issue