美文网首页
回归分析中的哑变量和虚拟变量

回归分析中的哑变量和虚拟变量

作者: 一颗小柚子lyc | 来源:发表于2022-03-19 11:49 被阅读0次

虚拟变量(dummy variable)也叫哑变量,翻译不同而已。因为dummy的含义有假的、虚拟的、哑的等各种含义,所以国内翻译也不一样。但是他们俩是一回事。

虚拟变量其实算不上一种变量类型(比如连续变量、分类变量等),确切地说,是一种将多分类变量转换为二分变量的一种形式。Dummy这个词意思是虚拟的、假的,所以dummy variable意思就是假的变量,不是真实的变量。那它到底虚拟在什么地方呢?我们通过一个例子来详细解释一下

例:某研究者检测了四种不同类型社区(分别用0、1、2、3表示)的SO2情况。研究者欲分析社区类型是否与SO2水平有关系,或者说,不同社区类型的SO2水平是否不同。

该例子中,因变量SO2水平是一个定量资料,自变量社区类型是一个分类资料,分析方法可以考虑一般线性模型。

首先要强调一点,不管是一般线性模型还是广义线性模型,它们都是“线性”的,也就是说,只要你采用了这些模型,就已经默认了自变量与因变量之间的关系是线性的。所以,对于例中的数据,如果用一般线性模型,其结果如下图所示

图中的意思是,随着社区类型从0到3之间的改变,SO2水平是线性增加的,增加的幅度(斜率)是207.8。也就是说,社区类型从0变为1,SO2增加207.8;社区类型从1变为2,SO2增加207.8;社区类型从2变为3,SO2增加207.8。

但我们会发现,事实并非如此。从0到1时,似乎增加的幅度更大;而从1到2时,似乎增加的幅度没有这么大。也就是说,207.8这个幅度,只是一个平均幅度,是从0到3增加的平均幅度。如果我们想具体了解从0到1、从1到2、从2到3真实的增加值,就需要用到虚拟变量了。

所谓虚拟变量,就是把原来的一个多分类变量转化为多个二分变量,总的来说就是,如果多分类变量有k个类别,则可以转化为k-1个二分变量。如变量x为赋值1、2、3、4的四分类变量,就可以转换为3个赋值为0和1的二分类变量。

在进一步解释虚拟变量的含义之前,我们需要先了解一下“参照”的含义。分类结果的解释一般是要有参照类别的。比如我们说男性肺癌发生率高,暗含了“相对女性”这样的参照;50岁以上人群冠心病发生率更高,暗含了“相对50岁以下人群”的参照。没有参照,就没法说高或低。比如我们单独说80%这个数字,它是高还是低呢?相对70%就是高的,相对90%就是低的。所以分类变量的结果需要结合参照来解释。

当我们把k个类别的多分类变量转化为k-1个二分变量后,每一个二分类变量表示相对参照类的大小。例如,多分类变量x用1、2、3、4表示,我们设定以1作为参照,那么生成的3个虚拟变量分别表示:2和1相比的大小、3和1相比的大小、4和1相比的大小。

通过生成虚拟变量,就把原来的一个系数变成了多个系数,这多个系数更详细地显示了自变量与因变量之间的关系,尤其在非线性关系的时候,尤其重要。因为当你在用线性回归、logistic回归这些方法的时候,已经默认了是线性关系了,你是不可能找出非线性关系的。

下图比较了虚拟变量与原始变量的拟合效果

蓝色线是将其作为定量变量纳入,给出了直线的拟合效果。红色线是将其作为虚拟变量纳入,给出了相对参照而言,每个类别的拟合效果。不难看出,虚拟变量给出了真实的拟合效果,而定量变量在社区=0时高估,在社区=1时低估,结果很容易有偏。

在作为定量资料的时候,我们计算的斜率只有一个,即207.8。而将其作为3个虚拟变量后,便计算出3个系数,分别为431、509.4、666.6,分别表示:社区=1与社区=0相比,SO2平均高431;社区=2与社区=0相比,SO2平均高509.4;社区=3与社区=0相比,SO2平均高666.6。

如何设置虚拟变量呢?目前大多数软件都可以实现,如SAS软件在各种回归分析的过程中,一般都会有class语句,通过class语句的param=reference选项便可实现虚拟变量的设置。在SPSS中,在回归分析界面可以点击Categorical,通过该按钮可以设置虚拟变量,并指定其参照类。

如果我们要手工来设定,其思路也比较简单,设置过程如下所示:

社区类型是原始变量,社区1、社区2、社区3是生成的3个虚拟变量。方法是:第1个虚拟变量,当社区类型=1时,变量社区1=1,否则社区1=0;第2个虚拟变量,当社区类型=2时,变量社区2=1,否则社区3=0;第3个虚拟变量,当社区类型=3时,变量社区3=1,否则社区3=0。

最后强调一点:在模型分析时,虚拟变量都是同进同出,也就是说,要么都在模型中,要么都不在模型中,不能只保留其中一个,否则它的含义就变了。

转载自知乎什么是哑变量(虚拟变量),应用中应注意什么问题? - 知乎 (zhihu.com)

相关文章

  • 哑变量/虚拟变量

    什么是虚拟变量(哑变量)? 虚拟变量又称哑变量,是人为设定的用于将分类变量引入回归模型中的方法。 为什么要使用虚拟...

  • 回归分析中的哑变量和虚拟变量

    虚拟变量(dummy variable)也叫哑变量,翻译不同而已。因为dummy的含义有假的、虚拟的、哑的等各种含...

  • 数据分析中的哑变量问题,该怎么处理?

    什么是虚拟变量? 虚拟变量又称哑变量,是人为设定的用于将分类变量引入模型中的方法。 为什么要使用虚拟变量 在回归分...

  • 哑变量编码-python

    一、Dummy Variable定义 虚拟变量又称虚设变量、名义变量或哑变量,引入哑变量可使线形回归模型变得更复杂...

  • 2019-10-30

    Day3 多元线性回归 day3同学的笔记 导入库 读数据 拆因果 数字化 躲避虚拟变量陷阱虚拟变量(哑变量) ...

  • 哑变量

    在SPSS logistic回归X为多分类产量时,或者在R中用回归(lm)做方差分析时,系统会设置哑变量,哑变量的...

  • Python学习笔记-3群18组-杜杜狼-2017.7.24

    Lesson 26 虚拟变量 虚拟变量又叫哑变量和离散特征编码,用来表示分类变量,非数量因素可能产生的影响 离散特...

  • 数据分析之Logistic回归

    所有的线性回归分析中,因变量的类型都是连续变量,如果需要预测的变量类型为分类变量,则需要采用回归分析中的Logis...

  • 回归模型中的哑变量

    2019-02-22,星期五,晴在构建回归模型时,如果自变量X为连续性变量,回归系数β可以解释为:在其他自变量不变...

  • 虚拟变量

    虚拟变量 ( Dummy Variables) 又称虚设变量、名义变量或哑变量,用以反映质的属性的一个人工变量,是...

网友评论

      本文标题:回归分析中的哑变量和虚拟变量

      本文链接:https://www.haomeiwen.com/subject/pzmgdrtx.html