加载中…
个人资料
谷子歌的2018
谷子歌的2018
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,101
  • 关注人气:199
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于Logistic回归中哑变量的设置及OR值的计算

(2012-11-27 15:51:34)
标签:

logistic

哑变量

or

设计矩阵

分类: Stats_Model

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

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

data  class;

   set sashelp.class;

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

 run;

 

proc logistic data=class;

     class cat;

     model sex=cat age height weight;

run;

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



http://s14/mw690/41889b90hcf755a86a6cd&690


 

把三种PARAM全跑一下:

 

proc logistic data=class;

        class cat/param=effect;

 model sex=cat age height weight;

run; 

proc logistic data=class;

        class cat/param=glm;

 model sex=cat age height weight;

run; 

proc logistic data=class;

        class cat/param=ref;

 model sex=cat age height weight;

run;

 

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

http://s7/mw690/41889b90hcf755a9057c6&690

 

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

 

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

 

http://s3/mw690/41889b90hcf755a99d272&690

 

 

 

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

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有