如何用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做广义差分会简单许多。

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

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2014-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

没练过这个项目,怎么做AI工程师?

从年初起,几家国际大厂的开发者大会,无论是微软Build、Facebook F8还是稍后的Google I/O,莫不把“AI优先”的大旗扯上云霄。

10210
来自专栏机器学习算法与Python学习

Encoder-Decoder自动生成对联,要试试么?

另外,点击阅读原文尝试微软的自动对联系统(http://duilian.msra.cn/app/couplet.aspx)

13400
来自专栏xingoo, 一个梦想做发明家的程序员

动态规划

基本思想:将待求解问题分解成若干子问题,先求解子问题,然后从子问题的解中得到原问题的解。 与分治不同的是,经分解得到的子问题往往不是互相独立的。 若用分治法来解...

19750
来自专栏PPV课数据科学社区

强大的PyTorch:10分钟让你了解深度学习领域新流行的框架

摘要: 今年一月份开源的PyTorch,因为它强大的功能,它现在已经成为深度学习领域新流行框架,它的强大源于它内部有很多内置的库。本文就着重介绍了其中几种有特色...

38190
来自专栏北京马哥教育

Numpy 隐含的四大陷阱,千万别掉进去了!

陷阱一:数据结构混乱 array 和 matrix 都可以用来表示多维矩阵: ? 看起来效果不错。假设我们要对数据进行筛选,取第 1 列的第 1 行和第 3 ...

44960
来自专栏北京马哥教育

Numpy 隐含的四大陷阱,千万别掉进去了!

看起来效果不错。假设我们要对数据进行筛选,取第 1 列的第 1 行和第 3 行数据构成一个 2 x 1 的列向量。先看对 array 的做法:

27320
来自专栏落影的专栏

程序员进阶之算法练习(二十四)

前言 已经有三个月未更新算法文章,大厂工作环境是步步紧逼的,使得所有的人越来越忙碌。余下的学习时间,要用于技术预研、知识面开阔、底层原理理解等等,慢慢算法只能占...

41870
来自专栏PPV课数据科学社区

【大数据问答】SPSS是如何做到发现数据质量问题,例如,如何发现缺失值?

SPSS是如何做到发现数据质量问题,例如,如何发现缺失值? (1)系统缺失值、空白值 每一个变量均有可能出现系统缺失或者空白,当数据量巨大时我们根本无法用眼睛...

43840
来自专栏互联网大杂烩

机器学习面试

线性回归的因变量是连续变量,自变量可以是连续变量,也可以是分类变量。如果只有一个自变量,且只有两类,那这个回归就等同于t检验。如果只有一个自变量,且有三类或更多...

11240
来自专栏微信模式识别中心技术分享

“变形金刚”为何强大:从模型到代码全面解析Google Tensor2Tensor系统

      Tensor2Tensor(T2T)是Google Brain Team在Github上开源出来的一套基于TensorFlow的深度学习系统。该系统...

3.1K90

扫码关注云+社区

领取腾讯云代金券