Appendix E
COMPLETE PROGRAMS AND PROC IML ROUTINES
E.1 PROGRAM 1
This program was used in Chapter 2. It is used to analyze Table F3.1 of Greene (2003). In the following data step, we read in the raw data, create a trend variable, T, divide GNP and Invest by CPI, and then scale the transformed GNP and Invest time series so that they are measured in trillions of dollars.
proc import out=invst_equation
datafile="C:\Temp\Invest_Data"
dbms=Excel Replace;
getnames=yes;
run;
data invst_equation;
set invst_equation;
T=_n_;
Real_GNP=GNP/(CPI*10);
Real_Invest=Invest/(CPI*10);
run;
/* The start of Proc IML routines.
*/proc iml;
/* Invoke Proc IML and create the X and Y matrices using the variables T, Real_GNP, and Real_Invest from the SAS data set invst_equation. */
use invst_equation;
read all var {’T’ ’Real_GNP’} into X;
read all var {’Real_Invest’} into Y;
/* Define the number of observations and the number of independent variables. */
n=nrow(X);
k=ncol(X);
/* Create a column of ones to the X matrix to account for the intercept term. */
X=J(n,1,1) ||X;
/* Calculate the inverse of X’X and use this to compute B_Hat */
C=inv(X’ *X);
B_Hat=C *X’ *Y;
/* Compute SSE, the residual sum of squares, and MSE, the residual mean square. */
SSE=y’ *y-B_Hat’ *X’ *Y;
DFE=n-k-1;
MSE=sse/DFE;
/* Compute SSR, the sums of squares due to the model; MSR, the sums of squares due to random error; and the F ratio. */
Mean_Y=Sum(Y)/n;
SSR=B_Hat’ *X’ *Y-n *Mean_Y * *2;
MSR=SSR/k;
F=MSR/MSE;
/* Compute R-Square ...