From sasCommunity
/************************************************
* COMPUTE GRANGER-CAUSALITY TEST IN A VAR MODEL *
* USING PROC VARMAX *
************************************************/
/* SIMULATE A VAR SERIES */
proc iml;
sig = 100 * i(2);
phi = {-0.2 0.1, 0.5 0.2, 0.8 0.7, -0.4 0.6};
call varmasim(y, phi) sigma = sig n = 100 seed = 1;
cn = {'y1' 'y2'};
create ts1 from y[colname = cn];
append from y;
quit;
/* TEST FOR UNIT ROOT */
proc varmax data = ts1;
model y1 y2 / p = 2 dftest;
run;
/*
Dickey-Fuller Unit Root Tests
Variable Type Rho Pr < Rho Tau Pr < Tau
y1 Zero Mean -1.77 0.3577 -0.93 0.3125
Single Mean -8.20 0.1970 -2.23 0.1960
Trend -7.07 0.6459 -1.69 0.7491
y2 Zero Mean -9.17 0.0336 -2.10 0.0350
Single Mean -40.92 0.0009 -4.23 0.0010
Trend -41.19 0.0003 -4.09 0.0090
RESULT: NULL HYPOTHESIS OF UNIT ROOT CAN'T BE REJECTED
*/
/* TEST FOR UNIT ROOT AND CAUSALITY AFTER DIFFERENCING */
proc varmax data = ts1;
/* DIFFERENCING VARIABLES USING DIFY OPTION */
model y1 y2 / p = 2 dftest dify = (1);
/* SPECIFY CAUSAL STATEMENT FOR CAUSALITY TEST */
causal group1 = (y1) group2 = (y2);
run;
/*
Dickey-Fuller Unit Root Tests
Variable Type Rho Pr < Rho Tau Pr < Tau
y1 Zero Mean -357.22 0.0001 -13.32 <.0001
Single Mean -358.43 0.0001 -13.28 <.0001
Trend -393.25 0.0001 -13.91 <.0001
y2 Zero Mean -725.38 0.0001 -18.14 <.0001
Single Mean -725.39 0.0001 -18.05 <.0001
Trend -744.93 0.0001 -18.20 <.0001
RESULT: NULL HYPOTHESIS OF UNIT ROOT IS REJECTED
Granger-Causality Wald Test
Test DF Chi-Square Pr > ChiSq
1 2 40.30 <.0001
Test 1: Group 1 Variables: y1
Group 2 Variables: y2
RESULT: NULL HYPOTHESIS OF Y1 NOT CAUSED BY Y2 IS REJECTED
*/