现在用 Python 写线性回归的博客都快烂大街了,为什么还要用 SPSS 做线性回归呢?这就来说说 SPSS 存在的原因吧。
SPSS 是一个很强大的软件,不用编程,不用调参,点巴两下就出结果了,而且出来的大多是你想要的。这样的特点特别适合建模初期进行算法的选择。比如
- SPSS 做因子分析,输出结果中有一项 Kaiser-Meyer-Olkin Measure of Sampling Adequacy. 它的值是在 [ 0, 1] 范围内,这个值大于 0.5 就证明原数据中的指标适合使用因子分析算法进行建模,小于 0.5 要不重新计算指标,要不换算法。
- SPSS 做多元线性回归,输出结果中的拟合度过低,说明指标与结果之间的相关性并不明显,要不重新计算指标,要不换算法。
- ..................
下面详细讲讲 SPSS做多元线性回归的步骤吧
准备工作:SPSS - 中文版 SPSS 22.0 软件下载与安装教程 - 【附产品授权许可码,永久免费】
第一步:导入数据
路径:【文件】--【打开】--【数据】--【更改文件类型,找到你的数据】--【打开】--【然后会蹦出下图左中的筛选框,基本使用默认值就行,点确定】
- 第一行代表的是用第一行的数据做列名;
- 第二行代表文件中数据所在的范围,默认是所有数据都选上,但是如果你只需要选择前 n 行,那就把里面的110改了就行;
- 第三行代表字符串宽度,这个默认值就可以,不用改;
导入数据之后就是下图右中的样子,老习惯,我们来说说原数据,第一列是拨打电话指数,第二列是接通电话指数,这两个是自变量,第三类是因变量回款指数。为了脱敏,所以用自己的办法换算成现在这样的数值。
第二步:数据分析
【分析】--【回归】--【线性】--【通过截图中的方式,将因变量与自变量添加到对应的地方】--【其他都使用默认值】--【确定】
第三步:输出结果分析
第一项输出结果:输入/移去的变量
输入变量是两个自变量Connect, Call,没有移去任何变量。
第二项输出结果:模型汇总
- R表示拟合优度(goodness of fit),用来衡量模型的拟合程度,越接近 1 越好;
- R方表示决定系数,用于反映模型能够解释的方差占因变量方差的百分比,越接近 1 越好;
- 调整R方是考虑自变量之间的相互影响之后,对决定系数R方的校正,比R方更加严谨,越接近 1 越好;
- 标准估计的误差是误差项 ε 的方差 σ2的一个估计值,越小越好;
一般认为,
- 小效应:R (0.1~0.3),对应 R方(0.01~0.09);
- 中等效应:R (0.3~0.5),对应 R方(0.09~0.25);
- 大效应:R (0.5~1),对应 R方(0.25~1);
第三项输出结果:Anova
Anova表示方差分析结果,主要看 F 和 Sig 值,为方差分析的结果,F检验的重点在 Sig 值,具体大小不重要,其 F 值对应的 Sig 值小于 0.05 就可以认为回归方程是有用的。
第四项输出结果:系数
系数表列出了自变量的显著性检验结果,
- 非标准化系数中的 B 表示自变量的系数与常数项(下图代表的回归方式为:Return = 0.097 * Call + 1.243 * Connect - 0.160);
- 标准系数给出的自变量系数与非标准化系数中的明显不同,这是因为考虑到不同自变量之间的量纲和取值范围不同(比如在其他例子里面,第一个自变量是年龄(0~120),第二个自变量是收入(0~10万),显然年龄18岁与收入18块钱代表的意义是不一样的,因此需要进行标准化),因此这里的系数更能代表每个自变量对因变量的影响程度,(下图代表的回归方式为:Return = 0.126 * Call_标准化的值 + 0.739 * Connect_标准化的值);
- t 值 与 Sig 值 是自变量的显著性检验结果,其 t 值对应的 Sig 值小于 0.05 代表自变量对因变量具有显著影响,下图中,自变量 Connect 对 因变量具有显著影响,而自变量 Call 的影响程度就弱了很多;
综上所有的输出结果,说明 Call、 Connect 与 Return 的拟合效果还挺理想的。
与Python的结果对比
同样的数据,我们看看Python中的多元线性回归结果:
Python给出的回归方程: Y = -0.01 + 0.09 * Call + 1.19 * Connect;
SPSS 给出的回归方程: Y = -0.16+ 0.09 * Call + 1.24 * Connect;
如果想要学习一下这个过程,你可能需要:
1.SPSS - 中文版 SPSS 22.0 软件下载与安装教程 - 【附产品授权许可码,永久免费】
2.机器学习 - 多元线性回归 - 一步一步详解 - Python代码实现
本例中用的数据与机器学习 - 多元线性回归 - 一步一步详解 - Python代码实现中的数据是同一份,便于对比。