options nocenter ;
data test ;
input y x0 x1 x2 ;
cards;
7 1 2 1
15 1 4 4
20 1 3 7
15 1 6 3
12 1 5 2
8 1 1 2
;
run;
proc iml;
* Read data into IML ;
use test;
read all ;
* combine x0 x1 x2 into a matrix X ;
x = x0 || x1 || x2;
print x;
* now get b ;
b = INV(x`*x)*(x`*y) ;
yp = x * b ;
ye = y - yp ;
print "predictor variables";
print x;
print "predicted variable";
print y;
print "parameter estimates";
print b;
print "predicted value of Y";
print yp ;
print "error in prediction of Y";
print ye ;
*writing out b as a data set;
create c var {parameter} ;
append from b;
quit;
proc print data = c;
run;
