title 'Regression with two X variables'; data max2; input y x1 x2; lines; 1.54 132.0 29.1 1.74 135.5 29.7 1.32 127.7 28.4 1.50 131.1 28.8 1.46 130.0 25.9 1.35 127.6 27.6 1.53 129.9 29.0 1.71 138.1 33.6 1.27 126.6 27.7 1.50 131.8 30.8 run; title '3-DIMENSIONAL SCATTER PLOT'; proc g3d data=max2; scatter x1*x2=y / grid caxis=black; run;
이제 적절하다고 판단한 회귀모형을 통해 x1, x2, y값들을 plane에
저장 하고 '표면도'을 추가로 그리는 코드data plane; do x1=125 to 140 by 1; do x2=25 to 35 by 1; y=-4.410 + 0.049*x1 - 0.019*x2; output; end; end; run; title '3-DIMENSIONAL PLANE SURFACE'; proc g3d data=plane; plot x1*x2=y / grid caxis=black; run;
title 'TOTAL AND PARTIAL COEFFICIENTS'; proc iml; y={2, 3, 2, 7, 6, 8, 10, 7, 8, 12, 11, 14}; x={1 0 2, 1 2 6, 1 2 7, 1 2 5, 1 4 9, 1 4 8, 1 4 7, 1 6 10, 1 6 11, 1 6 9, 1 8 15, 1 8 13};
title 'Total and Partial Coefficients'; data ex4_6; input y x1 x2; cards; 2 0 2 3 2 6 2 2 7 7 2 5 6 4 9 8 4 8 10 4 7 7 6 10 8 6 11 12 6 9 11 8 15 14 8 13 ; symbol v=dot i=rl; proc gplot data=ex4_6; plot y*x2 /vaxis= 0 to 20 haxis=0 to 16; run; proc plot data=ex4_6; plot y*x2 = x1; run;
title 'Computation of Partial Coefficient using Residuals'; proc iml; y={ 1.54,1.74,1.32,1.50,1.46,1.35,1.53,1.71,1.27,1.50 }; x={ 1 132.0 29.1, 1 135.5 29.7, 1 127.7 28.4, 1 131.1 28.8, 1 130.0 25.9, 1 127.6 27.6, 1 129.9 29.0, 1 138.1 33.6, 1 126.6 27.7, 1 131.8 30.8 }; n = nrow(x); x1 = x[,{2}]; x2 = x[,{1,3}]; b1 = inv(x2`*x2)*x2`*x1;
x1hat = x2b1;
d = x1 - x1hat;
one = j(n,1,1);
d1 = one||d;
b = inv(d1`d1)d1`y;
print b;
quit;