手把手教你做多重线性逐步回归

article/2025/9/3 4:32:05

1.案例背景与分析策略

1.1 案例背景介绍

某研究收集到美国50个州关于犯罪率的一组数据,包括人口、面积、收入、文盲率、高中毕业率、霜冻天数、犯罪率共7个指标,现在我们想考察一下州犯罪率和哪些指标有关。数据上传SPSSAU后,在 “我的数据”中查看浏览原始数据,前5行数据如下:

图1 “我的数据”查看浏览数据集

1.2 明确目的与分析策略

从数据分析的目的上,我们想了解犯罪率是否受到人口、面积、收入、文盲率、高中毕业率、霜冻天数6个方面的影响。影响因素分析,可以考虑回归分析、方差分析等统计方法,考虑到目标变量即因变量犯罪率为连续型数据,其他6个指标也为连续型变量,因此考虑尝试拟合多重线性回归模型,用以研究犯罪率的影响因素。

其中,犯罪率作为因变量,其他人口、面积等6个变量作为自变量。为高效分析、精简模型,本例将采用逐步回归的方式由模型自动筛选对因变量有影响的自变量。

2.初步数据分析

2.1 线性关系探查

拿到数据后,不宜马上开始线性回归拟合,应当首先探查各自变量X与因变量Y是否存在线性关系这一基础条件。如果拒绝该条件,则考虑对数据做转换或改用其他统计方法在SPSSAU中,可以借助“散点图”、“Pearson相关系数矩阵”初判X与Y的线性关系是否存在。

在“通用方法”栏目中选择【相关】,将人口~犯罪率共7个变量拖拽至【定量分析项】框中, 默认选择“Pearson相关系数”,最后点击“开始分析”。

图2 自变量、因变量间的相关性

各变量两两间的线性相关系数见图2。人口、文盲率、高中毕业率、霜冻天气与犯罪率存在线性相关(均P值<0.05),是我们重点的研究对象。面积、收入两个指标与犯罪率的相关系数无统计学意义,但考虑到专业经验与既往研究结论认为二者对犯罪率有线性关系,本次案例仍拟将二者作为次要因素参与线性拟合。

X与Y是否有线性关系,建议绘制多变量散点图矩阵,通过散点图观察线性趋势,比相关系数更直观高效。

2.2 共线性问题排查

由图2可知,6个自变量间相关系数绝对值介于(0.023,0.672)之间,初步认为各自变量间无强相关性。

在SPSSAU中,有两处功能可以实现线性回归。“通用方法”栏目下的【线性回归】适用于自变量较少的情况,此时拟考察的自变量将全部进入模型。而“进阶方法”栏目下的【逐步回归】适用于自变量较多的情况,此时众多自变量可以采取逐步回归的策略进入模型。

现在我们可以借助【线性回归】,考察所有6个自变量的多重共线性问题。打开【线性回归】界面,犯罪率移入【定量Y】框,其他6个自变量移入【定量X】框,不勾选“保存残差和预测值”选项,点击“开始分析”。

图3 线性回归系数、VIF、方差分析结果表格

图3中可见各自变量的VIF方差膨胀因子,一般认为VIF低于5(也有说法是低于10)可忽略共线性问题。本例中,VIF最高值为3.911低于5,再结合没有强相关性,初步判断认为,6个自变量间的共线性问题可忽略不计。

3.逐步回归分析

3.1 软件操作

自变量个数较少时,可采取强制纳入的方式,自变量个数较多时,可考虑采取逐步回归。有的研究会根据样本量大小,选择先做一元线性回归,逐个考察单个自变量的影响,然后再选择有显著影响的自变量做多重线性回归。结合相关性结果与样本量,本例拟直接采用逐步回归,接下来做多重线性逐步回归。

在“进阶方法”栏目下,选择【逐步回归】,将犯罪率拖拽至【定量Y】框内,人口、面积等6个自变量拖拽至【定量/定类X】框内。默认勾选【保存残差和预测值】,默认选择【逐步法】进行回归。最后点击“开始分析”即可。

图4 SPSSAU逐步回归操作界面

SPSSAU对用户极为友好,逐步回归的操作只需要拖拽变量即可完成,极大降低新手的操作难度。

3.2 回归结果解读

SPSSAU输出的回归结果表格,是一张整合后的三线表表格,内含回归系数、自变量显著性t检验、模型评价决定系数R评分,以及总体回归模型显著性检验结果。具体见下图5。

图5 逐步回归分析系数、VIF、方差分析结果表格

(1)最终模型中只保留了人口、文盲率,人口、文盲率对犯罪率的影响有统计学意义(t=2.808,p=0.007;t=6.978,p<0.01);面积、收入、高中毕业率、霜冻天数不在模型内,说明这4个自变量对犯罪率的影响无统计学意义。由标准化回归系数可知,对犯罪率的影响,相对而言是文盲率比人口相对要重要。

(2)回归模型:Hat Y = 1.652+0.00022*人口+4.081*文盲率;回归模型总体有统计学意义(F=30.75,P<0.01)。

(3)模型调整后的R平方=0.548,即该回归模型可解释因变量犯罪率变化的54.8%,模型解释能力略先不足。

4.回归残差诊断

除了X与Y线性相关条件外,线性回归还对残差有条件要求。主要表现为要求回归残差独立,回归残差服从正态分布,残差无异方差性。

此前我们要求SPSSAU计算并另存回归模型的残差和预测值数据,这两个新的数据,在 “我的数据”中查看数据即可看到。

图6 “我的数据”查看新计算的残差、预测值数据

Residual为回归残差,Prediction为回归拟合或预测值。

4.1 绘制残差PP图

在“可视化”栏目中,选择【PP图QQ图】,将Residual数据移入【分析项】即可绘制出残差的PP图,用于判断残差是否服从正态分布。

4.2 绘制残差散点图

在“可视化”栏目中,选择【散点图】,将Residual数据移入【定量Y】框,Prediction数据移入【定量X】框,绘制残差散点图,用于判断残差是否无异方差性。

4.3 残差条件结果解读

正态PP图,见下图7。

绝大多数点落在对角线上,即可认为数据近似服从正态分布。本例认为满足该条件。同样地,也可以命令SPSSAU绘制残差数据带正态曲线的直方图,或正态QQ图做判断,其结论均一致。

图7 残差数据的正态PP图

图8 残差诊断散点图

残差散点图,见上图8。散点图上各点的分布均匀离散,没有明显规律性。由此判断,残差无异质性。

此图左上角有一个点偏离较远,可根据实际情况判断是否为异常值。如是,则考虑删去后重新回归。本例略。

对于残差独立性,可以依据图5中DW值做出判断,一般认为DW值在1.7~2.3之间则残差独立(无自相关性)。本例DW=2.18,认为残差独立性满足要求。

至此,残差正态、残差独立、残差无异方差性均满足条件。

5.预测

回归模型建立后,SPSSAU也可以针对模型帮用户实现简单的预测功能。本例的研究目的并不强调预测,这里仅做简单示范。

图9 线性回归预测

如上图9所示,在【逐步回归】的结果页面中,找到【模型预测】,直接输入人口值、文盲率值,我们以California州的数据为例,来做验证。依次输入21198、1.1,预测犯罪率为10.893,本例原始中真值为10.3,有微小误差。

6.总结

线性回归中要求自变量为连续型数据,如果遇到类别型自变量,可酌情转为哑变量然后进行回归。在SPSSAU的“数据处理”栏目下【生存变量】功能中可执行哑变量转换。

另外,如果回归分析出现异常值数据,可在SPSSAU中的“数据处理”栏目下【异常值】功能中进行处理或填补。也或者使用稳健回归(Robust回归进行分析,Robust回归是专门处理异常值情况下的回归模型)。

就本案例来说,以犯罪率为因变量,专业上主张的6个因素,人口、面积、收入、文盲率、高中毕业率、霜冻天数,经多重线性逐步回归分析后,最后我们发现人口、文盲率对犯罪率有显著影响,其他4个自变量对因变量的影响无统计学意义。

本例未对异常值进行识别和处理,实践中应当重视异常数据对回归模型的影响。


http://chatgpt.dhexx.cn/article/U0Qj8Kum.shtml

相关文章

讲讲逐步回归

总第178篇/张俊红 01.前言 前面我们讲过了多元线性回归。这一篇我们来讲讲逐步回归。什么是逐步回归呢?就是字面意思,一步一步进行回归。 我们知道多元回归中的元是指自变量,多元就是多个自变量,即多个x。这多个x中有一个问题需要…

多重共线性产生原因及处理办法+R语言+糖尿病数据案例分析+逐步回归法

1、多重共线性 多重共线性一般是在(1)时间序列数据和(2)横截面数据中会发生。 产生的影响 (1)OLS得到的回归参数估计值很不稳定 (2)回归系数的方差随共线性强度增加而增长 &#…

SPSS多元线性回归及逐步回归教程

点击分析->回归->线性会出来如图 选择自变量,因变量。点击左侧然后点击即可选择变量并将它添加到自变量、因变量。 点击统计,需要额外勾选共线性诊断和然后点击继续,点击 设置成如图 。 解释:---------------------------…

Python OLS 双向逐步回归

算法基本思路:首先需要确定一个因变量y以此构建一元回归方程,再找到已通过显著性检验的一元线性回归方程中F值最大的解释变量x0,将其并入回归方程中,再分别将剩余的解释变量与解释变量x0作为OLS函数的自变量集拟合回归方程&#x…

逐步回归分析

逐步回归分析 在实际问题中,首先碰到的问题是如何确定自变量。通常是根据所研究的问题,结合经济理论,罗列出对因变量可能有影响的一些因素作为自变量。 因此,我们需要挑选出对因变量有显著影响的自变量,构造最优的回归方程。 逐步回归的基本思想是:将变量一个一个引入,…

向前逐步回归

向前逐步回归 我们在进行拟合的时候,没有必要将所有变量都引入到我们的函数之中,这种操作往往会导致过拟合,而过拟合带来的致命影响就是泛化能力差,最小二乘法估计参数的时候无法终止学习的过程。向前逐步回归的引入则可以控制学…

SPSSAU中逐步回归法——探索分析单支股票数据(实践)

数据说明: 还是选择万兴科技的股票数据来做回归分析,和《股票时序分析和时序模型(实践)》这篇文章使用数据一致。需要说明由于spssau免费账号最多输入50项数据,所以使用的都是近50期数据。 spssau上的相关分析图 pyth…

多元逐步回归算法

先谈一下个人对多元逐步回归的理解:多元逐步回归的最本质的核心是最小二乘原理,本方法中调用smf方法。# encoding: utf-8""" 功能:多元逐步回归 描述:基于python实现多元逐步回归的功能 作者:CHEN_C_W …

【模型开发】逐步回归

1.定义 当变量中含有对被解释变量影响不大的解释变量时,可能因为误差平方和的自由度减小而使方差的估计增大,从而影响回归预测的精度,适当的选择一个变量建立一个最优的回归方程十分重要。 逐步回归(Stepwise Regression&#xff…

matlab逐步回归分析法,天大matlab大作业逐步回归分析方法.doc

天大matlab大作业逐步回归分析方法.doc 逐步回归分析方法在实际中,影响Y的因素很多,这些因素可能存在多重共线性(相关性),这就对系数的估计带来不合理的解释,从而影响对Y的分析和预测。“最优”的回归方程就是包含所有对Y有影响的…

【R语言数据科学】(十九):变量选择(一)逐步回归法

【R语言数据科学】 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言编程基础、R语言可视化、R…

4.1程序控制流图

程序控制流图,简称流图,是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构。 控制流图中包括两种图形符号: 节点控制流线 复合条件要分解为简单条件 判定节点(谓词节点) 由判定节点发…

流程控制(上)

大家好,我是Python领域的博主。 如果你是编程爱好者可以小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。 如果文章有什么错误的地方,请不吝赐教。 觉得博主文章写的还错的话,请三连支持一下博主哦 …

使用soot和graphviz画Java的控制流图

辛苦两天了,啥也不说,先来张图: 看着可真漂亮,O(∩_∩)O哈哈~ 实验环境是Ubuntu。 1.JDK的版本必须是1.7或者以下,JDK1.8不行,总会报错, 2.下载sootclasses-2.5.0.jar包:http://d…

软件测试----------------- 控制流图 圈复杂度 独立路径 测试用例

最近在学软件测试,学到了画,控制流图 圈复杂度 独立路径 测试用例,这里,有些不理解,就网上查了下,发现好多老哥写错了,大佬写的甚至收费79。 我试着写写,如果有不足的,大…

LLVM CFG控制流图可视化

LLVM CFG控制流图可视化 准备 安装必要组件 sudo apt-get install -y graphviz-doc libgraphviz-dev graphviz示例程序 /// file 1.c int x 10; int y 11; int main(){int z 12; for (int i 0;i < 10;i){z * x * y;} return 0; }生成LLVM IR 文件 clang -S -em…

白盒测试--控制流测试(白盒测试,逻辑覆盖,路径测试(基路径测试、循环测试),控制流图)

文章目录 白盒测试概念白盒测试方法--控制流测试语句覆盖判定覆盖&#xff08;分支覆盖&#xff09;条件覆盖判定-条件覆盖条件组合覆盖路径覆盖 路径测试基路径测试循环测试 控制流图基本控制流图复合逻辑下的控制流图图矩阵环形复杂度 白盒测试概念 又叫结构测试&#xff0c…

控制流分析(Control Flow Analysis)

控制流(Control Flow)&#xff1a;操作的序列 控制流分析(Control Flow Analysis)&#xff1a;通过分析程序去发现每一过程内控制流层次结构。 控制流分析的原因&#xff1a; 控制流分析(CFA)能够帮助我们理解控制流图&#xff08;control-flow graphs,CFG&#xff09;的结构…

程序流图画法详解

程序流图一般是软件评测师考试中的第一道大题&#xff0c;同时也是必考大题&#xff0c;多层嵌套的循环程序绘制流程图时十分繁琐&#xff0c;本人在经过练习真题以及查阅资料后有了一些绘制控制流图的小经验&#xff0c;如有不对请指出。下面以2017年的软件评测师下午第一套真…

对Python控制流图(Control Flow Graph)-(CFG)的一些探索

对Python控制流图&#xff08;Control Flow Graph&#xff09;-&#xff08;CFG&#xff09;的一些探索 粗浅的了解 1.定义 控制流图(Control Flow Graph, CFG)也叫控制流程图&#xff0c;是一个过程或程序的抽象表现&#xff0c;是用在编译器中的一个抽象数据结构&#xff…