壹生大学

壹生身份认证协议书

本项目是由壹生提供的专业性学术分享,仅面向医疗卫生专业人士。我们将收集您是否是医疗卫生专业人士的信息,仅用于资格认证,不会用于其他用途。壹生作为平台及平台数据的运营者和负责方,负责平台和本专区及用户相关信息搜集和使用的合规和保护。
本协议书仅为了向您说明个人相关信息处理目的,向您单独征求的同意,您已签署的壹生平台《壹生用户服务协议》和《壹生隐私政策》,详见链接:
壹生用户服务协议:
https://apps.medtrib.cn/html/serviceAgreement.html
壹生隐私政策:
https://apps.medtrib.cn/html/p.html
如果您是医疗卫生专业人士,且点击了“同意”,表明您作为壹生的注册用户已授权壹生平台收集您是否是医疗卫生专业人士的信息,可以使用本项服务。
如果您不是医疗卫生专业人士或不同意本说明,请勿点击“同意”,因为本项服务仅面向医疗卫生人士,以及专业性、合规性要求等因素,您将无法使用本项服务。

同意

拒绝

同意

拒绝

知情同意书

同意

不同意并跳过

工作人员正在审核中,
请您耐心等待
审核未通过
重新提交
完善信息
{{ item.question }}
确定
收集问题
{{ item.question }}
确定
您已通过HCP身份认证和信息审核
(
5
s)

什么是虚拟变量,应用中应注意什么问题?

2020-12-10作者:壹生科研学院科研
科研

来源:“小白学统计”微信公众号


记得以前又一次给研究生上课,我问学生说:你们应该听说过虚拟变量吧?因为学生们已经上过logistic回归课程了。结果学生一致摇头,没听说过。我有点纳闷,不可能啊。我知道讲logistic回归的老师一定会讲虚拟变量的。这时有学生说,我们只讲过哑变量,没讲过虚拟变量。我突然间只想静静。

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

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

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

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

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

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

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

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

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

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

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

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

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

在作为定量资料的时候,我们计算的斜率只有一个,即207.8。而将其作为3个虚拟变量后,便计算出3个系数,分别为431509.4666.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

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

2

0

1

0

2

0

1

0

2

0

1

0

2

0

1

0

2

0

1

0

3

0

0

1

3

0

0

1

3

0

0

1

3

0

0

1

3

0

0

1

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

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


200 评论

查看更多