Previous Page | Next Page

The VARMAX Procedure

Example 30.3 Numerous Examples

The following are examples of syntax for model fitting:

   /* Data 'a' Generated Process */
   proc iml;
      sig = {1.0  0.5, 0.5  1.25};
      phi = {1.2 -0.5, 0.6  0.3};
      call varmasim(y,phi) sigma = sig n = 100 seed = 46859;
      cn = {'y1' 'y2'};
      create a from y[colname=cn];
      append from y;
   run;;
   /* when the series has a linear trend */
   proc varmax data=a;
      model y1 y2 / p=1 trend=linear;
   run;
   
   /* Fit subset of AR order 1 and 3 */
   proc varmax data=a;
      model y1 y2 / p=(1,3);
   run;
   
   /* Check if the series is nonstationary */
   proc varmax data=a;
      model y1 y2 / p=1 dftest print=(roots);
   run;
   
   /* Fit VAR(1) in differencing */
   proc varmax data=a;
      model y1 y2 / p=1 print=(roots) dify=(1);
   run;
   
   /* Fit VAR(1) in seasonal differencing */
   proc varmax data=a;
      model y1 y2 / p=1 dify=(4) lagmax=5;
   run;
   
   /* Fit VAR(1) in both regular and seasonal differencing */
   proc varmax data=a;
      model y1 y2 / p=1 dify=(1,4) lagmax=5;
   run;
   
   /* Fit VAR(1) in different differencing */
   proc varmax data=a;
      model y1 y2 / p=1 dif=(y1(1,4) y2(1)) lagmax=5;
   run;
   
   /* Options related to prediction */
   proc varmax data=a;
      model y1 y2 / p=1 lagmax=3
                    print=(impulse covpe(5) decompose(5));
   run;
   
   /* Options related to tentative order selection */
   proc varmax data=a;
      model y1 y2 / p=1 lagmax=5 minic
                    print=(parcoef pcancorr pcorr);
   run;
   
   /* Automatic selection of the AR order */
   proc varmax data=a;
      model y1 y2 / minic=(type=aic p=5);
   run;
   
   /* Compare results of LS and Yule-Walker Estimators */
   proc varmax data=a;
      model y1 y2 / p=1 print=(yw);
   run;
   
   /* BVAR(1) of the nonstationary series y1 and y2 */
   proc varmax data=a;
      model y1 y2 / p=1
         prior=(lambda=1 theta=0.2 ivar);
   run;
   
   /* BVAR(1) of the nonstationary series y1 */
   proc varmax data=a;
      model y1 y2 / p=1
         prior=(lambda=0.1 theta=0.15 ivar=(y1));
   run;
   /* Data 'b' Generated Process */
   proc iml;
      sig = { 0.5  0.14 -0.08 -0.03,  0.14 0.71 0.16 0.1,
             -0.08 0.16  0.65  0.23, -0.03 0.1  0.23 0.16};
      sig = sig * 0.0001;
      phi = {1.2 -0.5 0.  0.1,  0.6 0.3 -0.2  0.5,
             0.4  0. -0.2 0.1, -1.0 0.2  0.7 -0.2};
      call varmasim(y,phi) sigma = sig n = 100 seed = 32567;
      cn = {'y1' 'y2' 'y3' 'y4'};
      create b from y[colname=cn];
      append from y;
   quit;
   /* Cointegration Rank Test using Trace statistics */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 cointtest;
   run;
   
   /* Cointegration Rank Test using Max statistics */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 cointtest=(johansen=(type=max));
   run;
   
   /* Common Trends Test using Filter(Differencing) statistics */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 cointtest=(sw);
   run;
   
   /* Common Trends Test using Filter(Residual) statistics */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 cointtest=(sw=(type=filtres lag=1));
   run;
   
   /* Common Trends Test using Kernel statistics */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 cointtest=(sw=(type=kernel lag=1));
   run;
   
   /* Cointegration Rank Test for I(2) */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 cointtest=(johansen=(iorder=2));
   run;
   
   /* Fit VECM(2) with rank=3 */
   proc varmax data=b;
      model y1-y4 / p=2 lagmax=4 print=(roots iarr)
                    ecm=(rank=3 normalize=y1);
   run;
   /* Weak Exogenous Testing for each variable */
   proc varmax data=b outstat=bbb;
      model y1-y4 / p=2 lagmax=4
                    ecm=(rank=3 normalize=y1);
      cointeg rank=3 exogeneity;
   run;
   
   /* Hypotheses Testing for long-run and adjustment parameter */
   proc varmax data=b outstat=bbb;
      model y1-y4 / p=2 lagmax=4
                    ecm=(rank=3 normalize=y1);
      cointeg rank=3 normalize=y1
         h=(1 0 0, 0 1 0, -1 0 0, 0 0 1)
         j=(1 0 0, 0 1 0, 0 0 1, 0 0 0);
   run;
   
   /* ordinary regression model */
   proc varmax data=grunfeld;
      model y1 y2 = x1-x3;
   run;
   
   /* Ordinary regression model with subset lagged terms */
   proc varmax data=grunfeld;
      model y1 y2 = x1 / xlag=(1,3);
   run;
   
   /* VARX(1,1) with no current time Exogenous Variables */
   proc varmax data=grunfeld;
      model y1 y2 = x1 / p=1 xlag=1 nocurrentx;
   run;
   
   /* VARX(1,1) with different Exogenous Variables */
   proc varmax data=grunfeld;
      model y1 = x3, y2 = x1 x2 / p=1 xlag=1;
   run;
   
   /* VARX(1,2) in difference with current Exogenous Variables */
   proc varmax data=grunfeld;
      model y1 y2 = x1 / p=1 xlag=2 difx=(1) dify=(1);
   run;
Previous Page | Next Page | Top of Page