因变量 方差膨胀系数_请问如何计算潜变量的方差膨胀因子(VIF)?

这里提供一个 Python 实现的方法和原理趣分析

方差膨胀因子是非常经典缓解多元共线性的方法,原理简单,实现优雅,效果拔群。源代码源数据可私聊俺获取,每天固定时间查看和回复。

原理趣析

多重线性回归模型的主要假设之一是我们的预测变量(自变量)彼此不相关。我们希望预测变量与反应变量(因变量)相关,而不是彼此之间具有相关性。如言情剧中的 A 喜欢B,B 却喜欢 C,结果发现 C 其实喜欢 A;而 B 的一举一动很有可能影响着 A,所以当我们把 B和C 作为自变量来预测因变量 A 的行为时,这两个自变量之间的相互影响就会有点让人难受。

公式解释

方差膨胀因子(Variance Inflation Factor,以下简称VIF),是指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比。

上图公式可以看出在方差膨胀因子的检测中:每个自变量都会有一个膨胀因子值VIF_i,最后根据值的大小来选择是否删减

Ri^2 表示相关性,是谁跟谁的相关性呢?是自变量中的某一变量与除它外剩余的自变量进行多元线性回归,取回归结果,即模型精度来作为这个变量与剩余自变量的相关性。 听起来可能有点绕,这里举一下实例(用 “ 面积、卧室数量和浴室数量 ” 作为自变量来预测房价,在进行自变量的方差膨胀因子的检测时,面积、卧室数和浴室数轮流做单独的因变量,剩下的两个变量作为自变量,来看看这三个自变量中那个变量对其余两个变量的解释性高)

Ri^2 越大,如已经到了 0.9,那分母就很小,vif_i 的值就等于 10,即表示这个自变量已经同时解释了另外的某个或多个自变量,存在多元共线性,可以考虑删除一些自变量。

VIF越大,显示共线性越严重。经验判断方法表明:当0

效果实现

本文将使用 Python 数据分析利器 Jupyter Notebook 实现。虽然前人大神们已经有了完整的实现步骤 https://etav.github.io/python/vif_factor_python.html

但他们的实现方法还是会轻微复杂,笔者这里提供一个自写函数的方法

使用自写函数来检测各自变量的方差膨胀因子

发现变量 bedrooms 和 bathrooms 的方差膨胀因子都超过了 10。其实方差因子通常成对出现,通常较大的两个方差膨胀因子表明这两个变量自身本来就具有高度相关性,即这两个变量一起才解释一种东西,可以考虑去除一个自己并不怎么感兴趣的变量即可,也回到了我们最开始的目的:多重线性回归模型的主要假设之一是我们的预测变量彼此不相关,我们希望预测变量与反应变量相关,而不是彼此之间具有相关性。

bedrooms 和 bathrooms 的方差膨胀因子异常也能从上一张 ols 建模结果的图中看到端倪。将变量之间的相关性以热力图的形式呈现后,发现 ols 建模的结果是 bedrooms 每增加一个单位,房价还减少 -2925.8063 ???而热力图则反映出bedrooms 与房价呈现比较强的正相关关系。

所以我们可考虑去掉方差膨胀因子最大的变量 bedrooms,后再进行一次 ols 建模

对比两次建模结果,发现其实删除某个方差膨胀因子异常的变量后建模结果也不变,但我们需要注意的是:具体问题还得结合具体业务来分析,有时候尽管出现了多元共线性,但也还是需要保留方差膨胀因子异常的变量。

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

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

相关文章

下拉到底部加载更多

var p1; active_list();function active_list() {$.ajax({type: "GET",url: "{:U(User/glodLogList_data)}",data: {page:p},dataType: "json",success: function(data){if(datanull){$("#add_more").html(没有更多了);$("#add_m…

Print() 语句以及数字赋值语句 中if-else的使用

#print语句以及num里面if else 的变态语句 x10 num110 if x>8 else 20 #如果中间语句成立为True,则执行输出左边语句;否则为False 则输出右边语句 print(num1) num110 if x>15else 20 #如果中间语句成立为True,则执行输出左边语句;否则为False 则输…

幻世机器人_2014年科幻动作《幻世追踪/启动机械码》BD中英双字幕

◎译  名 幻世追踪/启动机械码(台)◎片  名 Vice◎年  代 2015◎国  家 美国◎类  别 动作/科幻/惊悚/冒险◎语  言 英语◎字  幕 中英双字幕◎IMDB评分 4.0/10 from 3,848 users◎文件格式 BD-RMVB◎视频尺寸 1280 x 720◎文件大小 1CD◎片  长 96…

单链表逆置

单链表的逆置问题,常常遇到,今天总结如下: 方法:头插法: 图示: 代码: //翻转单链表 ListNode* Revers(ListNode* pHead) {ListNode* newhead NULL;ListNode* cur pHead;while(cur){ListNode* …

if-else多级嵌套,输入3/4/5个数寻找最大值(太多了容易乱!!!)

哎呀呀,心累啊,玩这个多级嵌套,眼花~ 多级嵌套有序3个数(找最大值) a,b,ceval(input("a,b,c")) if a>b:pass #a (a,b)if a>c:print("max",a)if b>c:print(b,c)else:print(c,b)else:p…

页面 接收跳转数据_【实战案例】在线教育渠道落地页数据分析

商业数智化工作坊“ 与多位来自高校的专家学者与业界导师共同探索商业数字化、智能化发展趋势、技术及实践培养数字思维,掌握数智化工具,实现管理能力跃迁”1背景与目标通过对跟渠道落地页数据的分析,优化用户路径,提高各环节的转…

竞态条件和临界区

1. 临界区和竞态条件: 临界区:访问和操作共享数据的代码段; 竞态条件:当有多个线程同时进入临界区时,执行结果取决于线程的执行顺序; 如下述代码,当多个线程同时调用func函数,对共享…

MATLAB程序实现经纬度转换成平面坐标

近期搜了下经纬度坐标转换成直角坐标的程序和原理啥的,哎,真难啊,其实道理都懂吧,下面直接贴代码, 主要是加了个for循环而言,优化输出效果。 %%%MATLAB程序实现经纬度转换成平面尔坐标: M_PI3…

ANSYS2020R2与Solidworks2019进行关联,但2019安装完后打开出现无法获得下列许可SOLIDWORKS Standard.使用许可文件不支持此版本(-21,126,0)

本身想将ANSYS2020R2与Solidworks进行关联,本身电脑上安装了2016版本,但是使用ANSYS2020R2软件,无法关联上。又没找到相应方法去解决,估计是版本问题无法关联上吧,所以就重新下个高点的版本试试。在网上下载相关软件&a…

jquerymobile使用技巧

1)ajax开关(默认jquery以ajax方式加载页面) $.mobile.ajaxEnabled false; 2)不编译指定标签 $.mobile.page.prototype.options.keepNative"input"; 3)开启dom缓存 $.mobile.page.prototype.options.domCach…

git 使用writer_GitHub - Vpredictor/WriterFly: [QT/C++] 写作天下,为作家创造世界而生,执云作笔,诉尽平生意。...

写作天下简介为作家们创造世界而诞生,执云作笔,诉尽平生意。集简约UI与人性化AI于一体的码字工具,无论是小说、作文、日记、报告,都能轻松驾驭。QQ交流群:705849222特点已有功能:自由的目录:自动…

《Linux内核》课本读书笔记 第三章

转载于:https://www.cnblogs.com/bushifudongjing/p/5339017.html

android 动态切换aar_Android应用开发之动态更改AndroidManifest.xml中节点属性操作教程...

本文将带你了解Android应用开发之动态更改AndroidManifest.xml中节点属性操作教程,希望本文对大家学Android有所帮助。在Android使用Gradle进行编译打包时,有时候需要动态更改AndroidManifest.xml中application、activity等节点属性,大多数情…

ANSYS Workbench对称建模

ANSYS Workbench对称建模 (使用版本为ANSYS 2020R2) 一、循环对称建模 1、建立三维模型。拖出一个静力学分析模块,材料保持系统默认,在Design Modeler中建立圆盘的1/4模型。外圆半径20m,内圆半径10m,厚度5m…

毕业论文排版之Word 中公式居中,编号靠右该怎么设置(针对左右不对称页边距)

首先感谢博主这篇,大家基本可以参照这个: http://t.csdn.cn/s0FY7; http://t.csdn.cn/FjmbH; 但是由于博主的是规规整整的页面边距,一篇为上下左右均为2cm,另一篇上下2.54cm左右3.18cm。ps:如果你为以上的页…

python opencv报错_OpenCV in Python 入门问题,python报错 -问答-阿里云开发者社区-阿里云...

OpenCV是Intel开源计算机视觉库。它由一系列 C 函数和少量 C 类构成,实现了图像处理和计算机视觉方面的很多通用算法。在这篇文章(译自 http://glowingpython.blogspot.com/2011/10/beginning-with-opencv-in-python.html) 中将介绍如何使用 Python 版的 OpenCV。 下…

workbench出现“Unable to start the geometry editor”

今天上午打开workbench遇到这个“Unable to start the geometry editor”问题,但是重启软件还是没用,所以网上找了下。 方法1、来源百度——大向日葵爱太阳: 我刚出现这样的问题,解答办法是将你安装主程序下的破解文件的路径改一…

ant4 多个form 验证_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...

点击上方“早起Python”,关注并“星标”每日接收Python干货!本文含 3321 字,9代码片段建议阅读 8 分钟前言 在我们写爬虫的过程中,目标网站常见的干扰手段就是设置验证码等,本就将基于Selenium实战讲解如何处理弹窗和验…

如何写计算机会议的rebuttal

其实最好的教材就是实例,恰好NIPS会议会把往年所有论文的Rebuttal都贴出来。。。,见这里:http://papers.nips.cc/ 同时,圈内同行也总结了不少经验,下面转帖其他人的经验 如下转自:http://qiyuhua.github.io…

一建机电实务教材电子版_20年一建其实并不难,官方出版:复习题集(精修),速做速提90分...

20年一建其实并不难,官方出版:复习题集(精修),速做速提90分一建法规管理经济建筑市政机电水利等根据《一-级建造师执业资格考试大纲》(2018 年版) 和《2020年版全国一级建造师执业资格考试用书》,组织全国著…