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;