楼主: Rock2000
16965 19

[问答] Logistic过程的Class选项使用 [推广有奖]

  • 1关注
  • 24粉丝

已卖:6892份资源

学术权威

23%

还不是VIP/贵宾

-

威望
1
论坛币
104790 个
通用积分
51.9656
学术水平
55 点
热心指数
74 点
信用等级
48 点
经验
23510 点
帖子
520
精华
0
在线时间
10924 小时
注册时间
2004-5-27
最后登录
2025-11-12

楼主
Rock2000 发表于 2012-8-1 15:23:47 |AI写论文
20论坛币
在SAS 的logistic过程中,对于自变量是分类变量时,该如果选择Class选项??
有无Class及Class后的参数不同结果相差很大,并且,2分类及3分类又不相同。

为了什么问题,我设计程序如下,希望高人回答。
/*
sex: 取值0、1
sex1:取值F、M
test:取值0、1、2
数据中,sex对应sex1,其中sex=1对应sex1="M",sex=0对应sex1="F"。
*/

data a;
input y sex sex1$ test @@;
cards;
0      1      M    1
1      1      M    2
0      1      M    2
0      1      M    1
1      1      M    0
0      1      M    1
0      0      F    0
0      0      F    0
0      1      M    1
0      1      M    1
0      1      M    1
0      1      M    1
1      0      F    0
0      1      M    1
0      1      M    2
0      1      M    2
0      1      M    2
0      1      M    1
1      1      M    1
0      1      M    1
0      1      M    1
0      0      F    0
0      1      M    1
0      1      M    1
1      1      M    1
0      1      M    1
1      1      M    2
0      0      F    0
0      1      M    1
0      1      M    2
0      1      M    1
0      1      M    2
0      1      M    1
0      1      M    1
1      0      F    2
0      1      M    2
0      1      M    2
0      1      M    1
0      0      F    0
0      1      M    1
0      1      M    2
1      1      M    1
0      1      M    1
0      0      F    0
0      1      M    1
0      1      M    2
0      1      M    1
0      0      F    0
0      1      M    1
1      1      M    1
;
run;

proc  logistic data=a desc;
title '例1:SEX1 F and M 有class Ref=“M”';
class sex1(param=ref ref="M");
model y=sex1;
run;

proc  logistic data=a desc;
title '例2:SEX1 F and M 有class Ref=“F”';
class sex1(param=ref ref="F");
model y=sex1;
run;

proc  logistic data=a desc;
title '例3:SEX 0 and 1 有 class  ref="1"';
class sex(param=ref ref="1");
model y=sex;
run;

proc  logistic data=a desc;
title '例4:SEX 0 and 1 有 class  ref="0"';
class sex(param=ref ref="0");
model y=sex;
run;

proc  logistic data=a desc;
title '例5:SEX 0 and 1 无 class';
model y=sex;
run;

proc  logistic data=a desc;
title '例6:SEX 0 and 1 有 class  ref=last';
class sex(param=ref ref=last);
model y=sex;
run;

proc  logistic data=a desc;
title '例7:SEX 0 and 1 有 class  ref=first';
class sex(param=ref ref=first);
model y=sex;
run;

proc  logistic data=a desc;
title '例8:SEX 0 and 1 有 class 有param无ref参数';
class sex(param=ref);
model y=sex;
run;

proc  logistic data=a desc;
title '例9:SEX 0 and 1 有 class 无任何参数';
class sex;
model y=sex;
run;

proc  logistic data=a desc;
title '例10:Test 0、1、2 有 class  ref="2"';
class Test(param=ref ref="2");
model y=Test;
run;

proc  logistic data=a desc;
title '例11:Test 0、1、2 有 class  ref="0"';
class Test(param=ref ref="0");
model y=Test;
run;

proc  logistic data=a desc;
title '例12:Test 0、1、2 无 class';
model y=Test;
run;

proc  logistic data=a desc;
title '例13:Test 0、1、2 有 class  ref=last';
class Test(param=ref ref=last);
model y=Test;
run;

proc  logistic data=a desc;
title '例14:Test 0、1、2 有 class  ref=first';
class Test(param=ref ref=first);
model y=Test;
run;

proc  logistic data=a desc;
title '例15:Test 0、1、2 有 class 有param无ref参数';
class Test(param=ref);
model y=Test;
run;

proc  logistic data=a desc;
title '例16:Test 0、1、2 有 class 无任何参数';
class Test;
model y=Test;
run;



关键词:logistic ogistic logisti logist logis 设计程序 人生观 老人家

本帖被以下文库推荐

沙发
Rock2000 发表于 2012-8-1 15:28:15
为了方便观察结果异同,我把主要结果摘录如下

                                    Parameter      DF    Estimate       Error    Chi-Square    Pr > ChiSq
例1:SEX1 F and M 有class Ref=“M”:sex1      F     1      0.3278      0.9028        0.1319        0.7165
例2:SEX1 F and M 有class Ref=“F”:sex1      M     1     -0.3278      0.9028        0.1319        0.7165
例3:SEX 0 and 1 有 class  ref="1" :sex       0     1      0.3278      0.9028        0.1319        0.7165
例4:SEX 0 and 1 有 class  ref="0" :sex       1     1     -0.3278      0.9028        0.1319        0.7165
例5:SEX 0 and 1 无 class          :sex             1     -0.3278      0.9028        0.1319        0.7165
例6:SEX 0 and 1 有 class  ref=last:sex       0     1      0.3278      0.9028        0.1319        0.7165
例7:SEX 0 and 1 有 class ref=first:sex       1     1     -0.3278      0.9028        0.1319        0.7165
例8:SEX 0and1 有class有param无ref参数:sex    0     1      0.3278      0.9028        0.1319        0.7165
例9:SEX 0 and 1 有class 无任何参数:sex       0     1      0.1639      0.4514        0.1319        0.7165

                                        Parameter      DF    Estimate       Error    Chi-Square    Pr > ChiSq
例10:Test 0、1、2 有 class  ref="2":   test      0     1     -0.0488      1.0374        0.0022        0.9625
                                        test      1     1     -0.5878      0.8515        0.4765        0.4900

例11:Test 0、1、2 有 class  ref="0":   test      1     1     -0.5390      0.9667        0.3109        0.5771
                                        test      2     1      0.0488      1.0374        0.0022        0.9625

例12:Test 0、1、2 无 class         :   test            1      0.0877      0.5604        0.0245        0.8757

例13:Test 0、1、2 有 class  ref=last:  test      0     1     -0.0488      1.0374        0.0022        0.9625
                                        test      1     1     -0.5878      0.8515        0.4765        0.4900

例14:Test 0、1、2 有 class  ref=first: test      1     1     -0.5390      0.9667        0.3109        0.5771
                                        test      2     1      0.0488      1.0374        0.0022        0.9625

例15:Test 0、1、2 有 class 有param无ref参数:test 0     1     -0.0488      1.0374        0.0022        0.9625
                                        test      1     1     -0.5878      0.8515        0.4765        0.4900

例16:Test 0、1、2 有 class 无任何参数: test      0     1      0.1634      0.6052        0.0729        0.7872
                                        test      1     1     -0.3756      0.4992        0.5661        0.4518
结果截图 aaa.txt (2.63 KB)

藤椅
ziyenano 发表于 2012-8-1 18:16:31
Rock2000 发表于 2012-8-1 15:28
为了方便观察结果异同,我把主要结果摘录如下

                                    Parameter      DF  ...
1.如果是两分类变量,其实分类不分类效果都是一样的;
2.多分类变量,如果是数值型,不指定分类,SAS会当做连续变量处理(分类变量时有序分类变量时,比如年龄段,工资水平等,记成1,2,3,4等等,这样处理是有意义的,如果是无序分类变量,这样处理就没有任何意 义);如果是非数值型,SAS会报错;
3.对待多分类无序变量,是必须要设置成分类变量的;
SAS对分类变量,采用param=ref;
即分类变量 Response Profile是
[1 0
0 1
0 0]
的形式;
作为参照对象的参数估计为0;这样在估计oddratios比较方便,分类水平vs参照的水平的优势比=exp(该水平参数估计)
4.不指定ref参数,SAS会以最大值最为参照水平,比如sex会以1作为参照水平;
所以楼主上面好多程序其实是一样的。

板凳
flutter88 发表于 2012-8-1 18:52:11
实在太长了,没有仔细看。
不过,楼上是正解!

报纸
Rock2000 发表于 2012-8-1 19:07:59
ziyenano 发表于 2012-8-1 18:16
1.如果是两分类变量,其实分类不分类效果都是一样的;
2.多分类变量,如果是数值型,不指定分类,SAS会当 ...
对于二分类变量,请注意例1、例5、例8、例9。
按SAS help,如果有Class=ref未再加任何任何参数,或没有Class,均默认 class=ref ref=last;从结果看确实是如此,但现在问题是,例9有Class没有加参数,结果完全不一样了,何解???

如果遇到二分类变量,是否加Class?还是不加Class?

地板
ziyenano 发表于 2012-8-1 19:55:34
Rock2000 发表于 2012-8-1 19:07
对于二分类变量,请注意例1、例5、例8、例9。
按SAS help,如果有Class=ref未再加任何任何参数,或没有C ...
1.例8,没有设置ref参数,以1为参照水平,也即sex='M',故例1,例8是完全一样的;
其结果为0.378,即与参照水平M相比,F高出M 0.3278,(注:为了容易理解就这么说了,严格来讲这种说法是不正确的)
2.例5,没有设置分类变量,故等同于连续变量,0到1增加一个单位,-3.278*1-0.3278*0=-0.3278,
即 F 到 M 下降了0.3278,与上面是一致的(综上就是两分类变量分类不分类一样的原因);
3.例9,在没有设置param参数时,SAS默认是param=effect;
Response Profile
[1 0
0 1
-1 -1]
的形式;
参照水平的参数估计=-1*其余水平1参数估计+-1*其余水平2参数估计....
故例9的参照水平M=-1*0.1639=-0.1639;
F与M参数估计差为=0.1639-(-0.1639)=0.3278;
与上述的结论是一样的。

7
Rock2000 发表于 2012-8-1 20:16:32
ziyenano 发表于 2012-8-1 19:55
1.例8,没有设置ref参数,以1为参照水平,也即sex='M',故例1,例8是完全一样的;
其结果为0.378,即与参 ...
问题:
1.什么情况下不加Class或加class但参数?
2.什么情况下使用class但无任何参数(param=effect)?

8
ziyenano 发表于 2012-8-1 20:29:51
Rock2000 发表于 2012-8-1 20:16
问题:
1.什么情况下不加Class或加class但参数?
2.什么情况下使用class但无任何参数(param=effect)? ...
1.主要看建模目的,上面回帖讲了什么时候需要设置成分类变量,ref=看你想把什么设置成参照水平;
2.param=ref 主要强调参数估计,计算优势比oddsratio比较方便;
   param=effect主要强调假设检验,方便交互分析。
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
SedenyE7 + 1 + 1 + 1 精彩帖子
jingju11 + 5 + 5 + 5 鼓励积极发帖讨论

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

9
jingju11 发表于 2012-8-2 02:19:31
ziyenano 发表于 2012-8-1 20:29
1.主要看建模目的,上面回帖讲了什么时候需要设置成分类变量,ref=看你想把什么设置成参照水平;
2.para ...
非常感谢如此详细的诠释。可以问一下:“Param =effect ...方便交互分析”的具体所指嘛?我补充一个例子:如果你有ABC三个水平而且假设C为参考水平。也可以参考我的理解:
http://blog.sina.com.cn/s/blog_a3a9263601012klq.html

10
ziyenano 发表于 2012-8-2 11:28:07
jingju11 发表于 2012-8-2 02:19
非常感谢如此详细的诠释。可以问一下:“Param =effect ...方便交互分析”的具体所指嘛?我补充一个例子: ...
感谢京剧大师的博客,受益匪浅~
交互分析说的不太好,其实是分析交互作用;个人理解是比如两个分类变量c1 c2;分析它们之间是否有交互影响,感觉和方差分析中的交互效应差不多。
说的不对的地方,还请京剧指教。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 03:37