【连载4】 如何用spss做一般(含虚拟变量)多元线性回归

spss

回归一直是个很重要的主题。因为在数据分析的领域里边,模型重要的也是主要的作用包括两个方面,一是发现,一是预测。而很多时候我们就要通过回归来进行预测。关于回归的知识点也许不一定比参数检验,非参数检验多,但是复杂度却绝对在其上。回归主要包括线性回归,非线性回归以及分类回归。本文主要讨论多元线性回归(包括一般多元回归,含有虚拟变量的多元回归,以及一点广义差分的知识)。请大家不要觉得本人偷奸耍滑,居然只有一个主题,两个半知识点。相信我,内容会很充实的。

对于线性回归的定义主要是这样的:线性回归,是基于最小二乘法原理产生古典统计假设下的最优线性无偏估计。是研究一个或多个自变量与一个因变量之间是否存在某种线性关系的统计学方法。

这个什么叫线性回归,什么叫最小二乘法,在在高中数学课本里边就有涉及。我就不重复了嘿嘿。本质上讲一元线性回归是多元线性回归的一个特例,因此我们就直接讨论多元线性回归了哈。

为了便于叙述,我们先举个例子,假设我们想研究年龄,体重,身高,和血压的线性回归关系。

打开菜单分析——回归——线性,打开主对话框。很容易可以知道在本例中因变量选择血压,自变量选择年龄,身高,体重。然后注意,在因变量那个框框下边还有一个写着方法的下拉的单选菜单。这个方法指的是建立多元线性方程的方法,也就是自变量进入分析的方法。一共包括五种,进入,逐步,删除,向后,向前。进入是最简单的一种,就是强迫指定选中的自变量都进入方程。其余四个方法比较复杂,系统会依照不同的规则自动的帮助你剔除不合格的自变量,以此保证方程的可靠性。

下边的选择变量框框是用来指定分析个案的选择规则,这个一般大家是所有的个案都利用,所以不用管它。再下边的个案标签变量,是用来在图形中标注值得,也不是重点。最下边的WLS权重,是在加权最小二乘法里边使用的,这里不管它。

介绍完主面板以后我们来看统计量选项卡。这张选项卡比较小,一般勾选的主要有估计,模型拟合度,共线性诊断,DW检验统计量。其中前两个是常规选项,后两个是用来判断共线性的。(由于方程中有两个以上的自变量,如果这些自变量之间存在相关关系,就可能导致模型的失败。可能会出现本应该与因变量正相关的变量结果为负相关啊之类的问题。这时候就要看是不是存在多重共线性。)

继续,单击绘制。勾选直方图,正太概率图。

继续,单击保存。勾选预测值的未标准化,残差的未标准化,预测区间的均值,单值,最下边的包含协方差矩阵。

继续。单击选项。勾选使用F的概率,在等式中包含常量。

继续,确定。

结果的解释也说不上复杂。首先看模型汇总表的R方,这个值介于0和1之间,表示你的方程能解释你的模型的百分之多少,所以越接近1越好啦。然后要看方差分析表。第一行的回归对应的最后边的p值会告诉你这个方程是不是可信(注意,这个是整个方程的基础,这个p值不合格的话下边的数据都是无效的)。小于0.05认为就是可信的哈。

然后再看下边的系数表,这个表里的p值会告诉你每个自变量在这个方程里是否可信。小于0.05认为可信哈。在最前边的B下边那一列会告诉你每个自变量在方程里的系数(非标准化系数的意思是用你原来的数据算出来的系数,标准系数的意思是你的数据标准化以后算出的系数。你写方程时肯定看非标准化的哈)。图片的话你的P-P图上的每个空心圆都要尽量穿在那个线上边,圆心越靠近那个线越好。

到这里一般多元线性回归的基本知识就结束了。操作不是很难,但是遗憾的是,在实际生活中,关于多元线性回归,还有许多问题。最常见的问题是这样的。你为了保险,选了十几个变量在模型里边。这样的话,可能你的方程确实解释了很大一部分模型,但是这除了使方程过分复杂以外,还会引发严重的多重共线性。所以不要选很多的变量在你的方程里边。或者你在模型里选了五六个变量,其中一部分p值小于0.05,另一部分大于。而且最要命的是你觉得你的自变量好像都明显和你的因变量相关。这个问题在于,有可能你的一部分自变量和你的因变量的相关性非常强,太强了,所以你的其他变量看上去就没有那么相关了。这时候你需要试试改变你的进入方法,改成逐步或者其他什么的。也许可以解决问题。

但是不是所有的问题都可以用调整变量,或者改变变量进入方法可以解决的。有一些问题在于你的自变量的类型。有许多变量都是分类型的,比如你的性别,你是否抽烟,你的健康级别(不健康,一般,健康,非常健康)之类的。通常来讲,录入数据时会使用数字来表示特定含义。比如1是男,2是女,比如1,2,3,4来代表健康级别等等。一般情况下作分析是没有问题的,但是在回归里边也许不那么适合。

尤其是对于无序资料来说。

举个例子。季节。我们用1,2,3,4来表示四季。假设我们把这个变量当做一般变量写到方程里边,那么我们就有这么个方程Y=X+X1*a,其中X1是四季变量。那么春季就是X+a,夏季就是X+2a,秋季就是X+3a,冬季就是X+4a,考虑一下,四季之间本来是没有等级关系的,但是这个方程里边显示的冬季远远会比夏季的值大,那么真实情况是这样吗?很可能不是。因此就会造成方程的偏差。为了解决这个问题。我们引入虚拟变量的概念。

虚拟变量的设置方法是这样的,如果我们有d个水平,那么我们就设置d-1个虚拟变量,选出一个变量来做参照,虚拟变量全为0时为这个参照变量。虚拟变量有一个为1时代表某一个水平。还拿季节举例子,我们有四个季节,那么我们就设置三个虚拟变量,我们使000代表春季,100代表夏,010代表秋,001代表东。那么春季就是参照变量。(实际上设置四个虚拟变量也是可以的,但是结果一摸一样)

所以现在我们的一个代表四季的变量就变成了三个虚拟变量。我们的方程就变成了Y=X+X1*a+X2*b+X3*c。那么X就是春季的值X+X1就是夏季的值X+X2就是秋季的值X+X3就是冬季的值,是不是更准确了?

在张文彤老师的spss高级教程里边讲解到了虚拟变量的用法。但是由于是高级教程,因此并没有提到如何设置虚拟变量。网上很多博客里边也没有提到这个问题。但是为了完整性,我还是想写一下吧(毕竟这个系列的文章没有数据转换这个内容)。在线性回归里边,你需要自己设定虚拟变量。打开转换——重新编码为不同变量,把季节变量(或者行业,地区,或者别的什么)选到输入变量——输出变量里边,名称里输入你的新名称,标签要点一下,点一下更改。单击下边的旧值和新值,旧值里边输入1,新值输入1,点添加。然后旧值输入2,新值输入0,点添加,以此类推。设置好一个虚拟变量以后,设置第二个的时候,记得先把第一个从右边的窗口传回左边的窗口。有点麻烦,但是在所难免嘛。

然后注意做回归的时候,在主面板里边自变量的第一张仅选择你的虚拟变量,方法选进入。你要确保你的虚拟变量都要一块进到方程里嘛。然后点下一张,选择其他的数值变量,方法可以选逐步啊什么的。看结果的时候前边已经讲过了,虚拟变量改变的就是截距嘛。其他的结果都和一般的多元线性回归结果一样的。要注意的是就算有的虚拟变量p值合格,有的不合格,你选择变量的时候也必须把一个变量设置出的所有的虚拟变量选到一块,要么都要,要么都不要。

虚拟变量主要就是这样了。但是除了变量类型导致的问题以外,还有一个很严重的问题就是多重共线性。虽然我们讲,我们要少选几个变量,我们要降维,我们要想办法消减多重共线性。但是不可避免的,我们总是会碰到变量具有多重共线性的情况。

判断多重共线性,主要是通过共线性诊断里的VIF值和DW检验。VIF介于1到5时,就认为没有多重共线性。大于10时,认为存在严重多重共线性。在这里我们不讨论VIF大于10的情况(不然我下篇文章讨论什么?),我们要讨论的是另一种非常特殊的情况,VIF值合格,但是DW检验没有通过。这时候怎么办?

当然你可以假装没有看见DW检验,你继续做分析的话。很可能别人也看不出来,但是如果你的老师就是想考考你的广义差分法呢?

所以我们还是讨论一下广义差分法的操作办法。

首先你要保存你的变量的残差,在时间序列里边做滞后一期的残差(就在主面板里),然后把残差和滞后一期的残差做回归,记下它的斜率,在做滞后一期的自变量,因变量。建立新变量=原变量-斜率*滞后一期的变量(所有的自变量,因变量都要算新变量),然后再做回归。

这上边就是一次完整的广义差分法操作过程。检查DW,如果不合格,还需要在做一次广义差分。一般至多做两三次就可以了。过程有点复杂,其实用eviews做广义差分会简单许多。

多元线性回归的内容已经结束了。祝大家学习愉快!感觉本文对你有用的话给留个言行吗?先谢谢啊。

 

 

【连载1】spss中做相关分析 【连载2】如何用spss做均值比较分析
【连载3】如何使用spss做非参数检验 【连载4】 如何用spss做一般(含虚拟变量)多元线性回归
【连载5】如何用spss做加权最小二乘回归及岭回归 【连载6】如何用spss做logistic回归
【连载7】如何用spss做probit回归和非线性回归 【连载8】如何spss做因子分析及主成分分析
【连载9】如何用spss做交叉表检验和对应分析 【连载10】如何用spss做最优尺度分析

 

推荐视频课程:

【答疑群】PPV课-SPSS与假设检验 672536987

PPV课

我们用数据说话,传播正能量,执着探索大数据价值!

You may also like...

22 Responses

  1. 急求 请教大神~
    我现在有五个城市的在回归中,以北京为参照点,其他4个城市上海、广州、深圳、天津 分别设4个虚拟变量,该怎么设置呢?我看到下面有问到本硕博三个学历做虚拟变量的,我也是跟他一样一开始设置的不对,但是你的回答还是有点看不懂呢,那个转换两次的地方,请详细说下可以吗?

  2. irene gong说道:

    请问一下大神,在多元回归中,自变量有连续变量(5点量表测量的,如:社会评价;人际关系)和类别变量(如:教龄、薪资水平),因变量是连续变量(5点量表测量的,职业幸福程度)。请问这样的情况如何做回归,可以将自变量同时放入做吗?
    后续还想继续做路径分析,不知该如何进行

  3. 蓝梅冰柠说道:

    我想问一下,我是做中介效应分析,自变量是类别变量,3个水平,中介变量和因变量是连续变量。如果我把自变量编成两个虚拟变量的话,我怎么做中介呢?

  4. 从一片落叶开始。说道:

    我按照小编的方法设置了哑变量,但老师说不对,出来的结果应该有好几个。比如学历:本科、硕士、博士,我在转换变量时将学历命名为XL,旧值和新值里输入了1-00,2-10,3-01。模型里只有XL,老师的意思是应该有XL1,XL2,XL3。然后我又重新做,在命名时先是XL1,旧值新值只输入了1-00,以此类推,但是再做回归分析时输出结果是警告“没有有效案例”,请问我哪里做错了?我是自学的SPSS所以很多术语不知道,希望这样表述能让你明白。

    • 星星说道:

      你好,你的意思我大概明白啦,这个问题我是这样理解的。首先考虑你说的变量转换问题。你的学历有三个变量,那么它能够转换出两个哑变量。你的描述里是“旧值和新值里输入了1-00,2-10,3-01”,只做了一次转换。正确的做法应该是转换两次,第一次“旧值和新值里输入了1-0,2-1,3-0”,第二次“旧值和新值里输入了1-0,2-0,3-1”,这样就可以生成两个哑变量了哈。
      其次你说你没有有效案例,可能导致这个错误的原因比较多,建议你检查你做回归分析时有没有纳入全部案例,你的变量的类型是否是数值型,你选择的回归方法是否正确。
      还不清楚的话,可以继续提问哦。

  5. 笑对人生说道:

    这里的高手如云啊!

  6. 谢蓬莲说道:

    请问,同一个人的多次测验数据,比如说身高,体重,年龄,速度,时间等,其中身高,体重,年龄是相同的,在那么做回归时要怎么来处理数据呢?因为如果不处理的话,同一个人的身高,年龄,体重都被多次使用,结果R²就会很小。急求大神帮忙~~

    • 星星说道:

      orz,真是不好意思,今天才看到亲的问题,下次一定立马回复啦哈哈。
      像亲提到的这种情况确实是比较麻烦的。如果只有一个人的话,可以考虑只做速度和时间的回归,如果数据集中“人”很多的话,可以用每个人的平均速度和平均时间做回归。另外一些办法包括分组讨论,讨论人和人的速度、时间是不是随着身高、体重、年龄的不同而有所差异,不过这就是方差分析的内容,而不是回归分析啦。总之还是要具体问题具体分析吧,希望有启发到亲哦。

  7. joanx42039说道:

    星星,你说“单击下边的旧值和新值,旧值里边输入1,新值输入1,点添加。然后旧值输入2,新值输入0,点添加,以此类推。”是不是旧值的3变成新值的-1,旧值的4变成新值-2啊?

    • 星星说道:

      这个问题确实是我说的不够清楚。我的意思是这样的,还以季节变量为例撒,那么初始的时候我们有一个有四个值的季节变量,这四个值1234分别代表春夏秋冬,我们的目的是把季节变量拆成四个虚拟变量撒,也就是说把季节变量变成春,夏,秋,东四个变量。对于春来说,把季节变量里的1转换成1,234转换成000,对于夏来说,把季节变量里的2转成1,把134转成000,以此类推,最终就得到了四个有两个值的变量。注意,虚拟变量的重点就是吧一个有四个值的变量转成四个有两个值的变量。就是这样啦。希望有帮到你呦。

  8. 星星说道:

    你好,希望现在回复你不会太晚。DW的统计检验比较复杂和繁琐。Durbin与Watson编制了一套检验表,分别对应于不同的数据时间点、不同的自变量个数和不同的显著水平(分为0.01和0.05两种),提供两个临界值,分别记为DL(下限,低于其者则绝对有自相关)和DU(上限,低于其者“也许”有自相关)。具体使用如下: 1. 观察到的DW值小于2(即正自相关)时: 1. 如果DW大于DU,说明总体中的Cor(et, et-1) = 0,即可以接受回归分析结果; 2. 如果 DW小于DL,说明总体中的Cor(et, et-1) ≠ 0,即不能接受回归分析结果(因为自变量与残差之独立性被破坏而使得回归结果不可靠);. c: H o) v” O3 M# a% V: ^ 3. 如果DW落在DL和DU之间,则是一个灰色地带,需要进一步根据你的自变量分布是否均匀(即X在自己的各个取值上是否平均分配)来决定。如是,则按1b办;如否,则按1a办。 ” ^. H( G# i6 V- N* M 2. 观察到的DW值大于2(即负自相关)时: 1. 如果DW小于4-DU,则如同1a,即总体中的Cor(et, et-1) = 0而可以接受回归分析结果; 2. 如果DW大于4-DL,则如同1b,即总体中的Cor(et, et-1) ≠ 0而需要拒绝回归分析结果;: V2 C0 q! L ~4 X0 |( d7 Z2 o( q! B& m8 @ 3. 如果DW落在4-DL和4-DU之间,则如同1c,是一个灰色地带,需要进一步根据你的自变量分布是否均匀而决定是参照2a还是2b。PS.在显著的自相关下,回归系数的标准误差被人为缩小而显著水平被人为提高,是不可靠的

    • 鸢尾xi夕说道:

      星星,我最近修改了我的变量代进eviews了,的确检验什么的都简便多了,但是吧,我又有了新的问题。我知道这是spss专版,但是我真的没有别的人能找了,所以麻烦你了。我的新模型经过white检验之后,有异方差,我用wls之后white检验还是有异方差,我想用gls但是不知道异方差的形式,所以改用FGLS,但是FGLS之后我发现还是存在异方差,该怎么办啊?论坛里有帖子说FGLS不是blue我不是很明白诶,是说fgls之后就不用white检验模型就已经ok了吗?还是说fgls还是要white检验的啊??那像我这样fgls之后white检验还不过的怎么办??我还有一个问题,就是fgls最后那个权重是1/exp(拟合值)还是1/exp(拟合值)^(1/2)??因为网上有两个版本,我不知道那个是对的,还是两个都是对的啊???不过我 两个都试了,都不能通过white检验……麻烦了,毕业论文最后一个问题了,只要解决就成了。急求大神帮助啊~~~~

      • 星星说道:

        你好,真不好意思最近才刚刚看的你的提问。我回顾了一下你之前介绍的情况,“大家都是这样研究的,文献里边没有人关注DW值”,那么这样说的话应该大家都是不怎么关心DW值究竟怎样的,也就是不怎么关心多重共线性。而怀特检验关心的是异方差撒,就是关心数据是否符合“各个变量的方差相同”这个回归分析的前提。实际上在生活中,数据分布非常好的数据是比较少有的,而且你使用的变量非常多,因此很难满足方差相同这一条件是非常合乎情理的事情。我能给出的建议有二,或者继续修改数据,或者像你的同行一样忽略这一问题。具体怎么做看你自己了撒。至于需不需要怀特检验以及权重怎么赋,这个…如果我说我不知道你会不会砍死我?我对于广义差分法了解的也不多,真的不好意思了思密达!

  9. 鸢尾xi夕说道:

    不知道小编在不在,我对于修正D-W的广义差分法还是不是很了解,不知道能不能麻烦小编详细的再讲一下?D-W在0.68-0.98之间就是不合格吗?残差就是D-W值吗?怎么做滞后一期的残差?因变量和自变量都要先滞后然后回归做出滞后一期的D-W吗?两期的残差要怎么回归啊?残差除以滞后一期的残差还是滞后一期的残差除以残差?后面那一步所有的变量都要算新变量,那我的时间虚拟变量要怎么做啊?行业和地区的虚拟变量应该不用变了吧?问题有点多,如果小编不忙的话能不能帮忙解答一下?因为最近写论文临时补了spss的知识,但是发现书上好多都没有,小编的文章很有用啊,真的给了我很大的帮助,谢谢小编。真的希望小编能回我啊~在线等。

    • 星星说道:

      你好,希望现在回复你不会太晚。DW的统计检验比较复杂和繁琐。Durbin与Watson编制了一套检验表,分别对应于不同的数据时间点、不同的自变量个数和不同的显著水平(分为0.01和0.05两种),提供两个临界值,分别记为DL(下限,低于其者则绝对有自相关)和DU(上限,低于其者“也许”有自相关)。具体使用如下:1. 观察到的DW值小于2(即正自相关)时:1. 如果DW大于DU,说明总体中的Cor(et, et-1) = 0,即可以接受回归分析结果;2. 如果 DW小于DL,说明总体中的Cor(et, et-1) ≠ 0,即不能接受回归分析结果(因为自变量与残差之独立性被破坏而使得回归结果不可靠);. c: H o) v” O3 M# a% V: ^3. 如果DW落在DL和DU之间,则是一个灰色地带,需要进一步根据你的自变量分布是否均匀(即X在自己的各个取值上是否平均分配)来决定。如是,则按1b办;如否,则按1a办。 ” ^. H( G# i6 V- N* M2. 观察到的DW值大于2(即负自相关)时:1. 如果DW小于4-DU,则如同1a,即总体中的Cor(et, et-1) = 0而可以接受回归分析结果;2. 如果DW大于4-DL,则如同1b,即总体中的Cor(et, et-1) ≠ 0而需要拒绝回归分析结果;: V2 C0 q! L ~4 X0 |( d7 Z2 o( q! B& m8 @3. 如果DW落在4-DL和4-DU之间,则如同1c,是一个灰色地带,需要进一步根据你的自变量分布是否均匀而决定是参照2a还是2b。PS.在显著的自相关下,回归系数的标准误差被人为缩小而显著水平被人为提高,是不可靠的

      • 鸢尾xi夕说道:

        谢谢大神的回答,不会晚,而且非常详细, 真的很谢谢。我还是有些疑惑想要问一问。因为我的容量是7357个样本,然后课本里的检验表没有这么多,网上也找不到这么大的数据,不知道有没有完整版的D-W检验表啊??星星回复的答案中,有一些类似这样的符号”. c: H o) v” O3 M# a% V: ^”是什么意思啊?是没有打出来还是没有什么特别的意思?然后我下载的是spss19.0的破解版的,我没有找到滞后一期的残差,只是在预测里找到了创建时间序列,因为是第一次用spss虽然看了书,但是还是有很多不知道,可能是很简单的问题,但是我还是找不到,能不能说的再清楚一点?或者把步骤说一下,是很麻烦,但是还是希望能够解答一下 我也知道eviews要简单很多,但是我的虚拟变量太多了,eviews处理不了,我也不知道是怎么回事。我做了5年时间31个地区11个行业国有和非国有等虚拟变量,只能用spss带入了,所以到后面做新变量的时候是对每一个虚拟变量都做新变量对吧?辛苦辛苦,希望能够解答,谢谢

        • 星星说道:

          你好,完整的DW检验表我没有唉。那些符号是乱码吧,不用管它就好啦>_<,滞后一期的残差那块我真的记不到步骤啦,我现在的电脑上没有安spss,所以还是多抱歉的,我就记得是个二级选项,总之你就来回找找吧!做新变量的时候确实是要每个都做的。此外广义差分法是判断多重共线性的噶,你变量那么多,多重共线性肯定有撒,5年时间31个地区11个行业国有和非国有等虚拟变量,我都数不过来这是多少个变量了,所以比起多重共线性,我更担心你这个是不是其实就不适合做回归呢?总之希望你综合考虑一下吧。

          • 鸢尾xi夕说道:

            好的,我再去找一找。我知道广义差分法是判断多重共线性的,我已经检验了VIF都是正常的,我研究的论题也有很多人发表了论文,大家都是这样的研究方法,现在的问题就是我的D-W值都是0.68-0.98之间,有三四个是1.68多的,所以我才觉得会不会存在序列自相关,如果存在是不是应该要修正。文献里面没有人关注D-W值,我也不清楚他们有没有这样的情况,有一篇论文里面有将D-W值列出来,但是他也没有分析,他的值都是1-2之间的,所以我比较困惑。

          • 星星说道:

            嗯,按照这个样子的话,你可以试试先忽略它就好了,看看直接做后续分析是否受影响,如果不受影响的话不妨就不要管它了,否则的话还是要酌情考虑。加油呦思密达!

          • 鸢尾xi夕说道:

            结果倒是不怎么受影响,那也就是说不怎么碍事吗???

    • 星星说道:

      滞后一期的残差就在时间序列面板里啊。做回归时残差做X,滞后一期的残差做Y。虚拟变量都要算新变量。要做DW检验其实eviews要简单的。总之希望有帮到你啦。不会请继续留言噶。PPV课社区里yinhongyi是我马甲,欢迎骚扰。

  1. 2014年11月24日

    […] 【连载4】 如何用spss做一般(含虚拟变量)多元线性回归 […]

发表评论

切换注册

登录

忘记密码 ?

切换登录

注册