全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
26867 16
2012-11-27


proc logistic中,如果自变量是多值 分类变量,需要设置哑变量。多数统计书中会告诉你如果某一变量有N个值,那么你可以设N-1个哑变量。早期的SAS书或统计书中都会教 你用if语句设置哑变量,而后代入Logistic模型。其实,proclogistic是可以用class语句为分类变量 自动设置哑变量。具体而言,是在class语句后加选面paraeffct|glm|ref来实现的。不用para选项时,默认是effect.

sashelp.class为例(只是图个方便,不要考虑实际意义)

data  class;

   setsashelp.class;

cat=floor(ranuni(199323)*3+1);

run;


proclogisticdata=class;

     classcat;

     modelsex=cat age height weight;

run;

可以看到哑变量的设计矩阵。

1.png

把三种PARA全跑一下:


proclogisticdata=class;

        classcat/param=effect;

modelsex=cat age height weight;

run;



proclogisticdata=class;

        classcat/param=glm;

modelsex=cat age height weight;

run;


proclogisticdata=class;

        classcat/param=ref;

modelsex=cat age height weight;

run;


总结其设计矩阵及OR 如下:

2.png

可以看出,Para的不同参数,其设计矩阵是不一样的。估计的系数也不尽相同。但SAS给出的OR是相同的。其间的计算过程是怎么样的,对这一块一直有些模糊,今天终于清理了下。

Logistic的线性部分其实是ln(Odds)部分,odds=exp(线性部分)。当自变量取值 分别为e1, e0时,e1相对于e0Odds  Ratioexp(β(e1-e0) )据此,把设计矩阵里的值代入,可推得其计算过程大体如下图黄色部分。


3.png

paramglm时,cat=3β0,所以和para=ref的结果是一样的。Para=effect时,βOR会很细小的差异。


请多多指导,谢谢。


http://blog.sina.com.cn/s/blog_41889b900101fskx.html




二维码

扫码加我 拉你入群

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

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

全部回复
2012-11-28 08:50:39
支持楼主,还得需要在实践中才能体会到啊,继续体会
二维码

扫码加我 拉你入群

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

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

2012-11-28 09:43:14
henryyhl 发表于 2012-11-28 08:50
支持楼主,还得需要在实践中才能体会到啊,继续体会
谢谢支持。
二维码

扫码加我 拉你入群

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

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

2012-12-3 10:19:29
支持一下哦,从设计矩阵的角度谈到了这个问题的原理
二维码

扫码加我 拉你入群

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

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

2012-12-3 10:52:27
pingguzh 发表于 2012-12-3 10:19
支持一下哦,从设计矩阵的角度谈到了这个问题的原理
呵呵,这个贴子要沉了。好像没人感兴趣。
二维码

扫码加我 拉你入群

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

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

2013-3-23 11:04:38
谢谢分享,请教一个问题,是否遇见过OR不包含1,而P值大于0.05的情况?我现在碰到了不知道是什么原因
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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