全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3165 6
2014-05-28
尝试手动赋值哑变量和用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;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-28 15:46:14
哑变量设置的方法,可在class里面的param设置,你自己定义的这种方法应该是param=ordinal,但是默认的是param=effect
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-28 16:15:04
hkhl237 发表于 2014-5-28 15:46
哑变量设置的方法,可在class里面的param设置,你自己定义的这种方法应该是param=ordinal,但是默认的是par ...
谢谢,你说的对,我想问一下这两种赋值的区别在哪呢,就是什么情况应该用那种?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-29 08:54:18
这个我也不甚了解,回答不了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-29 09:29:05
参数化的不同只是表象,因为模型的实质没有区别。真正的不同是如何对待该变量。x_1 x_2 x_3是三个变量,class x是一个变量。如果是三个变量,那么在选择的过程中可能被分开,如果一个变量当然不存在这样的问题。另外,你做的也不是ordinal。其实,是什么不重要,虽然你的做法也是正确的一种。
京剧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-29 13:28:26
jingju11 发表于 2014-5-29 09:29
参数化的不同只是表象,因为模型的实质没有区别。真正的不同是如何对待该变量。x_1 x_2 x_3是三个变量,cla ...
那我想进行分析的时候具体应该选用那种方式呢?因为两种方式结果有很大差别,或者说两种结果我应该选择哪种作为分析结果?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群