Analysis of German Economic Variables

/*--------------------------------------------------------------

                    SAS Sample Library

        Name: varex02.sas
 Description: Example program from SAS/ETS User's Guide,
              The VARMAX Procedure
       Title: Analysis of German Economic Variables
     Product: SAS/ETS Software
        Keys: Vector AutoRegressive Moving-Average
              processes with eXogenous regressors
        PROC: VARMAX
       Notes:

--------------------------------------------------------------*/

title 'Analysis of German Economic Variables';
data west;
   date = intnx( 'qtr', '01jan60'd, _n_-1 );
   format date yyq. ;
   input y1 y2 y3 @@;
   y1 = log(y1);
   y2 = log(y2);
   y3 = log(y3);
   label y1 = 'logarithm of investment'
         y2 = 'logarithm of income'
         y3 = 'logarithm of consumption';
datalines;
180  451  415 179  465  421 185  485  434 192  493  448
211  509  459 202  520  458 207  521  479 214  540  487
231  548  497 229  558  510 234  574  516 237  583  525
206  591  529 250  599  538 259  610  546 263  627  555
264  642  574 280  653  574 282  660  586 292  694  602
286  709  617 302  734  639 304  751  653 307  763  668
317  766  679 314  779  686 306  808  697 304  785  688
292  794  704 275  799  699 273  799  709 301  812  715
280  837  724 289  853  746 303  876  758 322  897  779
315  922  798 339  949  816 364  979  837 371  988  858
375 1025  881 432 1063  905 453 1104  934 460 1131  968
475 1137  983 496 1178 1013 494 1211 1034 498 1256 1064
526 1290 1101 519 1314 1102 516 1346 1145 531 1385 1173
573 1416 1216 551 1436 1229 538 1462 1242 532 1493 1267
558 1516 1295 524 1557 1317 525 1613 1355 519 1642 1371
526 1690 1402 510 1759 1452 519 1756 1485 538 1780 1516
549 1807 1549 570 1831 1567 559 1873 1588 584 1897 1631
611 1910 1650 597 1943 1685 603 1976 1722 619 2018 1752
635 2040 1774 658 2070 1807 675 2121 1831 700 2132 1842
692 2199 1890 759 2253 1958 782 2276 1948 816 2318 1994
844 2369 2061 830 2423 2056 853 2457 2102 852 2470 2121
833 2521 2145 860 2545 2164 870 2580 2206 830 2620 2225
801 2639 2235 824 2618 2237 831 2628 2250 830 2651 2271
;

data use;
   set west;
   where  date < '01jan79'd;
   keep date y1 y2 y3;
run;

proc varmax data=use;
   id date interval=qtr;
   model y1-y3 / p=2 dify=(1)
                 print=(decompose(6) impulse=(stderr) estimates diagnose)
                 printform=both lagmax=3;
   causal group1=(y1) group2=(y2 y3);
   output lead=5;
run;

proc varmax data=use;
   id date interval=qtr;
   model y2 y3 = y1 / p=2 dify=(1) difx=(1) xlag=1 lagmax=3
                      print=(estimates diagnose);
run;