线性回归分析中的哑变量

最近偶尔在重温统计学,发现自己工作后用了各种高级的统计分析方法,各种统计模型,却忽视了统计学中一些最基础的知识,而这些知识是所有这些高级方法的基础,基础不扎实,高级方法用起来真觉得底气不足,今天看到哑变量在回归分析中的应用,总结如下:

哑变量(Dummy Variable),也叫虚拟变量,引入哑变量的目的是,将不能够定量处理的变量量化,如职业、性别对收入的影响,战争、自然灾害对GDP的影响,季节对某些产品(如冷饮)销售的影响等等。 这种“量化”通常是通过引入“哑变量”来完成的。根据这些因素的属性类型,构造只取“0”或“1”的人工变量,通常称为哑变量(dummy variables),记为D。

举一个例子,假设变量“职业”的取值分别为:工人、农民、学生、企业职员、其他,5种选项,我们可以增加4个哑变量来代替“职业”这个变量,分别为D1(1=工人/0=非工人)、D2(1=农民/0=非农民)、D3(1=学生/0=非学生)、D4(1=企业职员/0=非企业职员),最后一个选项“其他”的信息已经包含在这4个变量中了,所以不需要再增加一个D5(1=其他/0=非其他)了。这个过程就是引入哑变量的过程,其实在结合分析(conjoint analysis)中,就是利用哑变量来分析各个属性的效用值的。

在线性回归分析中引入哑变量的目的是,可以考察定性因素对因变量的影响,引入哑变量有两种方式:加法方式与乘法方式。

所谓加法方式是指,哑变量作为单独的自变量,有独立的系数,从几何意义上来讲,就是只改变回归直线的截距(constant),不改变斜率(B);

而乘法方式则正好相反,不改变截距,只改变斜率,因为哑变量在回归方程中不是作为一个独立的自变量,而是与其中某一个自变量相乘后作为一个自变量。

当然,也可以同时使用加法和乘法来引入哑变量,即同时改变截距和斜率。

由于哑变量的取值只有0和1,它起到的作用像是一个“开关”的作用,它可以屏蔽掉D=0的case,使之不进入分析,在spss软件中就是filter的作用。我试验了一下,确实如此。

利用spss软件自带的data:car.sav,分析汽车的功率与100米加速时间的关系,将变量“filter_$”作为哑变量,我们分别run两次线性回归分析,然后对比这2次的结果,来说明上面的想法。

第一次:将哑变量“filter_$”纳入到分析中,同时利用加法和乘法来引入,将“accel”作为因变量,“horse”、“filter_$”、“filter_$*horse”作为自变量,进行线性回归分析;

第二次,利用变量“filter_$”进行筛选case,即不分析filter_$=0的case,同样将“accel”作为因变量,而只将“horse”作为自变量;

两次的线性回归结果分别为:

第一次:accel=20.495-0.049*horse-0.007*"filter_$*horse"+0.738*filter_$

第二次:accel=21.234-0.056*horse

当filter_$=1时,第一次计算的公式正好等于第二次机算的公式。


转自:http://blog.sina.com.cn/s/blog_498290330100n2bh.html


你可能感兴趣的:(数据挖掘)