reverse-shooting

Matlab scripts for reverse shooting
Log | Files | Refs | README

arfor.m (993B)


      1 % arfor.m         yf=arfor(y,P,k,todiff)
      2 %
      3 %    Computes a forecast using an AR model
      4 %         y = data series (e.g. log GDP)
      5 %         P = # of AR terms in regression
      6 %         k = # of years to forecast, e.g. 2
      7 %         todiff = string 'diff' if we need to difference the data first
      8 %         (e.g. if we have a trending series).  Then undifference at end.
      9 %        yf = the k years worth of forecasts, e.g. 2x1 vector
     10 
     11 function [yf,y]=arfor(y,P,k,todiff);
     12 
     13 y=packr(y);
     14 ylev=y;
     15 
     16 if todiff=='diff';
     17   y=delta(y);
     18 end;
     19 
     20 [y ylags]=lagx(y,P);
     21 
     22 N=length(y);
     23 X=[ones(N,1) ylags];
     24 b=lstiny(y,X);
     25 
     26 for i=1:k;
     27   T=length(y);
     28   [yy1 yy2]=lagx(y,P);
     29   blah=[yy1 yy2];
     30   ylags=[ylags; blah(T-P,1:P)]; 		% Bc the first value is T
     31   y=[y; [1 ylags(T+1,:)]*b];
     32 end;
     33 
     34 if todiff=='diff';
     35   y=[ylev(1+P); y];
     36   y=cumsum(y);
     37   y=trimr(y,1,0); 			% so the N+1:N+k will work
     38 end;
     39 
     40 %plot(y);
     41 %hold on; z=lagx(trimr(ylev,1,0),P); plot(z); hold off;
     42 %disp 'press any key to continue';
     43 %pause;
     44 
     45 yf=y((N+1):(N+k));