多重共线性的处理方法

news2024/10/7 10:14:53

回归分析需要考虑多重共线性问题。多重共线性是指自变量之间存在高度相关性,导致回归模型的系数估计不稳定和假设检验不可靠。在实际应用中,许多自变量之间都可能存在一定程度的相关性,如果没有进行控制,就会导致多重共线性问题的发生。今天来讨论一下,如何解决多元线性回归分析中,多重共线性的问题。

一、多重共线性含义

在多元线性回归模型中,自变量X之间线性相关的现象被称为多重共线性。

数学描述:对于模型

其基本假设之一是自变量X之间是相互独立的,如果某两个或者多个自变量之间出现相关性,则称为多重共线性。即如果存在不全为0的C,使得

则称自变量X之间存在多重共线性。

二、多重共线性检验方法

多重共线性的检验可以使用相关分析查看两两自变量之间的相关系数,或者计算VIF值进行诊断。下文将围绕一个案例进行演示讲解。


案例:从中国知网截取一篇案例,相关说明及数据如下:

范圣岗,奚书静. 多元线性回归模型中处理多重共线性方法对比——以人口迁移冲击教育资源模型为例[J].

将数据整理好上传至SPSSSAU系统,进行后续分析。

1、相关系数检验法

如果两个自变量之间相关系数较大且接近1,则可认为回归模型中存在多重共线性问题。相关系数检验法可作为初步判断共线性的一种方法。
以SPSSAU为例,进行自变量之间的相关分析,操作如下图:
 

SPSSAU输出相关分析结果如下:

从相关分析结果来看,各自变量之间相关系数都较大且接近于1(均在0.7以上且显著),说明各自变量之间相关性很强,可以初步认为自变量之间存在多重共线性问题。

2、VIF检验法

VIF值是方差膨胀因子,可以衡量多重共线性的严重程度。一般认为VIF值大于10,则存在多重共线性问题(严格大于5)。

第i个回归系数的方差膨胀因子可表示为:

其中Ri方表示将第i个变量作为因变量与其余自变量拟合回归方程所得到的决定系数,VIF值越大说明该变量与其余自变量具有较强的相关关系。

另外,有些文献也以容忍度作为判断共线性的指标,容忍度为VIF值的倒数,容忍度大于0.1则说明没有共线性(严格是大于0.2)。研究时二者选其一即可,一般描述VIF值。

VIF值和容忍度可以通过SPSSAU线性回归分析得到,如下图:

从分析结果可以看出,除变量2教师高级职称占比外,其余变量的VIF值均大于0,可以认为存在严重的多重共线性问题。

三、多重共线性处理方法

当模型中出现多重共线性问题时,常用的解决办法有以下4种:

(1)手动剔除变量

(2)逐步回归

(3)岭回归

(4)增大样本量

接下来,基于本案例分别进行演示说明。

1、手动剔除变量

手动剔除变量,最简单的方法就是对存在共线性的自变量进行一定的筛选。

首先将VIF值最大的两个自变量“人均图书”和“人均教学设备”进行剔除,再次分析,得到结果如下:

从上表可以看出,在手动剔除了VIF值最大的两个变量后,剩下四个变量的VIF值均呈现下降趋势。但此时“人均教学面积”的VIF值仍大于10,进一步进行剔除后,得到结果如下:

此时可以看到,剩余3个变量的VIF值均小于10,此时多元回归模型公式为:一本上线率=-0.039 + 1.009*师生比 + 0.012*教师高级职称占比 + 0.033*人均教育投入,各系数均与正常逻辑相符。且模型R方值为0.969,表明方程有较好的显著性及对模型很好的解释性。

2、逐步回归

逐步回归法是在模型中逐个引入自变量,自动筛选出有影响的变量。逐步回归根据模型统计意义的检验以及调整后R方的变化情况来判断新引入的变量是否引起共线性。如果新引入的变量使得模型统计意义检验能通过,且又能提高模型的调整后R方,则应该引入,否则不引入。

SPSSAU共提供3种自变量进入回归模型的方法,分别是forward向前法、backward向后法、逐步stepwise法。

① 向前法

向前法是指回归模型中的变量从无到有,从少到多逐个引入的变量构建回归模型的一种方法。
② 向后法

向后法是指回归模型的变量从有到无,由多到少的逐个剔除变量构建回归模型的一种方法。
③ 逐步法

逐步法是向前法和向后法两种方法的结合,一边选择,一边剔除,二者交叉进行。逐步法逐个引入新变量,每引入一个新变量同时又考虑是否剔除已选变量,这种方法即保留了有显著影响的变量,又剔除了不显著的变量,使用最为广泛。故通常使用逐步法进行分析。


SPSSAU使用逐步法进行逐步回归得到分析结果如下:

从上表可以看出,使用逐步回归进行分析,最终只保留了“师生比”和“人均教育投入”两个变量在模型中,VIF值均小于5。

【特别说明】:值得注意的一点是,手动剔除变量和使用逐步回归法进行分析时,虽然能够降低模型的共线性问题,但是可能会剔除本来希望保留在模型中的变量;可能会导致模型的原本意义发生变化,使用的时候需要注意。

3、岭回归

岭回归是利用岭估计来代替普通最小二乘估计,以损失部分信息为代价来寻找效果稍差但回归系数更符合实际情况的模型方程。当自变量之间存在多重共线性,岭回归是相对比较稳定的方法,且岭回归估计的回归系数的标准差也较小。

岭回归其研究步骤共分为两步:①结合岭迹图寻找最佳K值;②输入K值进行回归建模。

step1:结合岭迹图寻找最佳K值

岭回归时k值的判断非常重要,通常可查看岭迹图和VIF指标进行判断。岭迹图出现平稳那一刻的k值即为最佳值,岭迹图的判断带有较强主观性。与此同时可使用VIF指标进行判断,SPSSAU默认输出该指标值,如果出现各个X的VIF均小于10时对应的最小K值,此时则为最优K值。

SPSSAU结合VIF<=10和K值越小越好这两个标准进行评判,建议可取K值为0.02。

step2:输入K=0,02,再次进行分析,得到岭回归分析结果如下:

从岭回归分析结果可以看出,VIF值均小于10,解决了多重共线性问题。

4、增大样本量

在建立回归模型时,如果变量的样本数据太少,很容易产生多重共线性问题。所以可以通过增大样本量的方法,克服多重共线性。但是在实际研究中是不现实的,因为我们没有办法确定增加什么多少样本才能克服多重共线性,也有可能在增加了样本量的同时,产生了一些新的问题,导致模型的拟合变差,没有达到我们所期望的效果。

除以上方法外,还可以使用主成分回归、lasso回归、改变参数的约束形式、变换模型的形式、综合使用时序数据和截面数据等多种方法处理数据的多重共线性问题。

参考文献:

[1]刘芳,董奋义. 计量经济学中多重共线性的诊断及处理方法研究[J]. 中原工学院学报,2020,31(01):44-48+55.

[2]范圣岗,奚书静. 多元线性回归模型中处理多重共线性方法对比——以人口迁移冲击教育资源模型为例[J]. 科技风,2020,No.427(23):157+159.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式之美-实战二:如何对接口鉴权这样一个功能开发做面向对象分析?

面向对象的三个环节&#xff1a;面向对象分析&#xff08;OOA&#xff09;、面向对象设计&#xff08;OOD&#xff09;、面向对象编程&#xff08;OOP&#xff09;。只知道OOA、OOD、OOP只能说有一个宏观了解&#xff0c;我们更重要的还是要知道“如何做”&#xff0c;也就是&a…

【快应用】多语言适配案例

【关键词】 多语言&#xff0c;$t 【问题背景】 快应用平台的能力会覆盖多个国家地区&#xff0c;平台支持多语言的能力后&#xff0c;可以让一个快应同时支持多个语言版本的切换&#xff0c;开发者无需开发多个不同语言的源码项目&#xff0c;避免给项目维护带来困难。使用系…

子串分值--子串分值和 模拟,找规律

子串分值和 n有十万&#xff0c;需要找规律&#xff0c;O(n^2)不满足要求 分析样例&#xff1a; Ababc 01234 长度是n5 索引下标-对应字符 0A贡献 112 a;ab;---22*1 next a 2&#xff1b; pre a -1 1b贡献 112 b;ba;---42*2 next b 3&#xff1b; pre b -1 2a贡献 1113…

2023年测试前景?测试开发工程师养成记,开发企业级测试平台...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发&#xff…

IDS 和 IPS 日志监控

什么是IDS/IPS 入侵检测系统 &#xff08;IDS&#xff09; 和入侵防御系统 &#xff08;IPS&#xff09; 是监视组织网络中的流量以检测和防止恶意活动和策略违规的网络组件。 入侵检测系统&#xff08;IDS&#xff09;和入侵防御系统&#xff08;IPS&#xff09;可以说是企业…

C语言学习分享(第八次)------数据的存储

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 数据的存储 1. 前言&#x1f6a9;2…

现代化智慧档案室建设图文推介

1、防火。建立档案库房防火制度&#xff0c;档案库房附近严禁存放易燃、易爆物品&#xff0c;库房内严禁吸烟&#xff0c;并备有灭火器&#xff0c;经常进行检查更换。 主要设备为&#xff1a;烟雾探测器和感温探测器和七氟丙烷灭火系统。 2、防潮。库房内备有温湿度计&#x…

GB28181 对接海康平台,解决音视频卡顿问题

GB28181 对接海康平台,解决音视频卡顿问题 一、概述二、问题分析1、设备对比分析2、抓包对比分析3、验证分析结果三、总结四、讨论一、概述 设备使用GB28181协议对接海康平台时,发现音频和视频存在卡顿现象,不是一直卡顿,有时候卡有时候不卡,但是卡顿的时候音视频一起卡顿…

炫技操作--递归实现翻转链表(java)

递归实现链表的逆序 leetcode 206题。 翻转链表递归解法普通方式实现链表翻转链表专题 leetcode 206题。 翻转链表 leetcode链接用于测试 题目&#xff1a;描述 将一个链表翻转&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 递归解法 解题思路…

chatgpt赋能python:Python中删除的SEO

Python中删除的SEO Python是一个强大的编程语言&#xff0c;它广泛应用于各种领域&#xff0c;包括SEO。在SEO领域中&#xff0c;Python可以用来处理各种数据&#xff0c;包括删除不必要的数据。本文将介绍如何在Python中删除SEO数据。 什么是SEO数据&#xff1f; SEO是搜索…

代码创造的欢乐世界-通用人工智能让儿童熟练应用编程

想要复杂的参考这一篇&#xff0c;使用云平台即可完成&#xff1a; 美美的圣诞树画出来-CoCube- 把圣诞树换成六一儿童节主题的就可以啦。 这一篇是使用chatgpt类应用&#xff0c;给出关键提示词&#xff0c;代码自动生成哦。 神十六发射成功&#xff0c;科技工作者博士学位…

python接口自动化使用requests库发送http请求

目录 前言一、requests库二、HTTP 请求方法三、发送GET请求四、发送POST请求五、获取响应数据六、高级操作 6.1文件下载6.2文件上传6.3SSL证书验证6.4保持会话6.5requests封装总结 前言 今天笔者想和大家来聊聊python接口自动化如何使用requests库发送http请求&#xff0c;废…

【JavaSE】Java基础语法(三十七):Java 中的 String 类(源码级别)

文章目录 1. 构造方法1.1 String()1.2 String(String original)1.3 String(char[] chars)1.4 String(char数组,起始下标,长度)1.5 String(byte数组)1.6 String(byte数组,起始下标,长度)1.7 String(StringBuffer buffer)1.8 String(StringBuilder builder) 2. 普通方法2.1 char …

【Python教学】Python兼职有哪些?给你们分享一下最适合学生党/工作党的Python兼职攻略以及接私活经验

文章目录 前言一、做兼职的优势二、兼职种类三、基本技能要求四、平台和渠道五、案例分析六、做兼职注意事项总结 前言 Python是一种高级编程语言&#xff0c;它具有简单易学、代码可读性高、功能强大等特点&#xff0c;被广泛应用于数据分析、人工智能、Web开发等领域。Pytho…

修改mysql密码与mac中mysql的启动与终止

目录 修改mysql密码 1.进入你的mysql文件下的bin目录下&#xff1a; 2.修改mysql密码 mysql的启动与终止&#xff08;mac&#xff09; 修改mysql密码 1.进入你的mysql文件下的bin目录下&#xff1a; 如果不知道自己电脑上的mysql在哪里的话&#xff0c;输入&#xff1a; …

Redis7实战加面试题-高阶篇(布隆过滤器BloomFilter,缓存预热+缓存雪崩+缓存击穿+缓存穿透)

布隆过滤器BloomFilter 先看看大厂真实需求面试题反馈 1.现有50亿个电话号码&#xff0c;现有10万个电话号码&#xff0c;如何要快速准确的判断这些电话号码是否已经存在? 2.判断是否存在&#xff0c;布隆过滤器了解过吗? 3.安全连接网址&#xff0c;全球数10亿的网址判断 …

Java 多线程共享数据引发的问题

一、多线程并发情况下&#xff0c;线程不安全​​ 1、使用多线程实现银行取钱​​ package theads;/*** ClassName: TestBank* Description: TODO* Author: HLX* date: 2023/5/29 14:53* Version: V1.0*//*** 线程不安全&#xff1a; 取钱* <p>* 逻辑&#xff1a;* 连取…

更改测试用例执行顺序的几种自动化方法

前言 在自动化测试中&#xff0c;自动化测试用例设计原则就是执行过程时不能存在依赖顺序&#xff0c;那么如果测试用例需要按照指定顺序执行&#xff0c;这个时候应该怎么做呢&#xff1f;目前单元测试框架中unittest没有办法改变测试用例的执行顺序&#xff0c;但是另一个单…

一顿操作,我成为了年薪40W+的测试开发,人麻了...

前情提要 我的第一份工作就是拿的8000多&#xff0c;主要以功能测试为主。我用了大概6年的时间&#xff0c;成为了年薪40W的测试开发。回顾我从功能测试到测试开发的成长路径&#xff0c;基本上是伴随着“3次能力飞跃”实现的。 第一家入职的时候是一家小公司 刚开始入行的时…

发改委强化电力需求侧管理,缓解电力系统峰值压力

安科瑞 耿敏花 摘要&#xff1a;近年来全国用电负荷特别是居民用电负荷的快速增长&#xff0c;全国范围内夏季、冬季用电负荷“双峰”特征日益突出&#xff0c;恶劣气候现象多发增加了电力安全供应的压力。具有随机性、波动性、间歇性特征的可再生能源大规模接入电网对电力系统…