尝试手动赋值哑变量和用class选项自动赋值哑变量,发现结果不同,请高人指教。程序如下:
data ex16_2;
input x1-x8 y @@;
if x1=1 then do;x1_1=0; x1_2=0; x1_3=0; end;
else if x1=2 then do x1_1=0; x1_2=1; x1_3=0;end;
else if x1=3 then do x1_1=0; x1_2=0; x1_3=1;end;
else if x1=4 then do x1_1=1; x1_2=0; x1_3=0;end;
cards;
3 1 0 1 0 0 1 1 0
2 0 1 1 0 0 1 0 0
2 1 0 1 0 0 1 0 0
2 0 0 1 0 0 1 0 0
3 0 0 1 0 1 1 1 0
3 0 1 1 0 0 2 1 0
2 0 1 0 0 0 1 0 0
3 0 1 1 1 0 1 0 0
2 0 0 0 0 0 1 1 0
1 0 0 1 0 0 1 0 0
1 0 1 0 0 0 1 1 0
1 0 0 0 0 0 2 1 0
2 0 0 0 0 0 1 0 0
4 1 0 1 0 0 1 0 0
3 0 1 1 0 0 1 1 0
1 0 0 1 0 0 3 1 0
2 0 0 1 0 0 1 0 0
1 0 0 1 0 0 1 1 0
3 1 1 1 1 0 1 0 0
2 1 1 1 1 0 2 0 0
3 1 0 1 0 0 1 0 0
2 1 1 0 1 0 3 1 0
2 0 0 1 1 0 1 1 0
2 0 0 0 0 0 1 0 0
2 0 1 0 0 0 1 0 0
2 0 0 1 1 0 1 1 0
2 0 0 0 0 0 1 0 0
2 0 0 0 0 0 2 1 0
2 1 1 1 0 1 2 1 1
3 0 0 1 1 1 2 1 1
2 0 0 1 1 1 1 0 1
3 1 1 1 1 1 3 1 1
2 0 0 1 0 0 1 1 1
2 0 1 0 1 1 1 1 1
2 0 0 1 0 1 1 0 1
2 1 1 1 1 0 1 1 1
3 1 1 1 1 0 1 1 1
3 1 1 1 0 1 1 1 1
3 1 1 1 1 0 1 1 1
3 0 1 0 0 0 1 0 1
2 1 1 1 1 0 2 1 1
3 1 0 1 0 1 2 1 1
3 1 0 1 0 0 1 1 1
3 1 1 1 1 1 2 0 1
4 0 0 1 1 0 3 1 1
3 1 1 1 1 0 3 1 1
4 1 1 1 1 0 3 0 1
3 0 1 1 1 0 1 1 1
4 0 0 1 0 0 2 1 1
1 0 1 1 1 0 2 1 1
2 0 1 1 0 1 2 1 1
2 1 1 1 0 0 2 1 1
2 1 0 1 0 0 1 1 1
3 1 1 0 1 0 3 1 1
;
run;
proc logistic descending;
model y=x1_1 x1_2 x1_3 x2-x8
/selection=stepwise
sle=0.1 sls=0.1;
run;
proc logistic descending;
class x1(ref="1");
model y=x1-x8
/selection=stepwise
sle=0.1 sls=0.1;
run;