分享

【SPSS】多重线性回归中的哑变量设置

 Memo_Cleon 2022-05-05 发布于上海

在进行多重线性回归时,如果解释变量中存在多分类变量,我们需要将其设置为哑变量。哑变量也称虚拟变量,实际上就是将具有K个水平的多分类变量转变成k-1个编码为01的二分类变量。哑变量可以将多分类变量的数量化,因为两个点一定是呈线性的,不过一个多分类变量生成的哑变量需要遵循同进同出的原则。

SPSS的线性回归中过程中,虽然没有直接提供哑变量设置的选项,但我们至少有三种方法可以实现这个目的:1)按哑变量的原理直接编码新变量2)使用[创建哑变量]过程3)采用[单变量]过程进行线性回归分析,这样做不需要单独设置哑变量但可以直接实现哑变量的效果。网络上对于前两种方法的介绍很多,但第三种方法操作起来更为简便。
示例:1989HosmerLemeshow研究了低出生体重婴儿的影响因素的数据,我们只选取其中的5个变量进行演示:结局变量是每个新生儿的具体体重(bwtg),解释变量有产妇妊娠前体重(lwt,磅)、产妇年龄(age,岁)、产妇在妊娠期间是否吸烟(smoke0=未吸、1=吸烟),种族(race1=白人、2=黑人、3=其他民族)
数据的结局变量是新生儿体重,解释变量中产前体重和年龄是连续变量,而吸烟和种族是分类变量。其中吸烟与否是二分类变量,二分类变量(赋值为0和1)在回归中按虚拟变量纳入和按连续变量纳入结果是一样的,我们在此不做处理,种族是多分类变量,其赋值并不代表对结局的影响大小,需要设置呈哑变量。
1】按哑变量的原理直接编码新变量

哑变量是将多分类变量的参照水平编码为0,其他每个水平都编码为01。本例我们以白人为参照水平,可通过[编码成不同的变量]过程来实现。

Transform>>Recode into Different Variables

生成新变量race_1标识白人,为参照水平,全部赋值为0;新生成变量race_2标识黑人,1=黑人,0=非黑人;新生成变量race_3标识其他人种,1=其他人种,0=非其他人种。可通过三次编码来实现,也可以通过修改程序代码来实现,具体如下:

哑变量编码结果如下:

后面进行正常的线性回归就可以了,可参见《多重线性回归分析》。

Analyze>>Regression>>Linear

bwt选入因变量,将agelwtsmokerace_1、race_2、race_3选入自变量。本例race_1为参照水平,取值均为0,纳入模型或者不纳入结果都是一样的。

方差分析表与参数估计表如下:

2】使用[创建哑变量]过程

该过程直接将多分类变量的每个水平都编码全为01,不编码参照水平。在进行后面的回归时,指定为参照水平的变量不纳入模型即可。

Transform>>Create Dummy Variables

Analyze>>Regression>>Linear

bwt选入因变量,将agelwtsmokerace_2、race_3选入自变量。需要注意的是采用[创建哑变量]过程创建的哑变量,分类变量的每个水平都编码全为01,并没有具体给出参照水平的编码,在进行回归分析时不纳入水平就是参照水平。

方差分析表与参数估计表如下:

3】采用[单变量]分析过程进行线性回归分析

Analyze>>General Linear Model>>Univariate

因变量选入bwt分类自变量选入因子框smokerace),连续自变量选入协变量框lwtage);不考虑交互作用的话在[模型]按钮中构建主效应模型;在[选项]按钮中选中参数估计,其他选项也根据需要进行选择,可参见《多因素方差分析前的正态性和方差齐性考察》,比如模型方差齐性等都是非常实用的一些选项。

结果如下:

采用[单变量]分析过程不需要专门进行哑变量设置,只需要把分类变量放入因子变量框即可,结果同设置哑变量后再进行回归的结果完全一致。不同的是在单变量分析过程中,分类变量会默认赋值水平最高的为参照水平,而在设置哑变量时则可能不一定以最高水平为参照水平,结果也会因为参照水平的不同而出现符号或者数字上的差异。
不过[单变量]分析过程更侧重的是多因素的校正,是无法实现线性回归中逐步回归那样的筛选功能的。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多