方差膨胀系数(variance inflation factor,VIF)是衡量多元线性回归模型中复 (多重)共线性严重程度的一种度量。它表示回归系数估计量的方差与假设自变量间不线性相关时方差相比的比值。

多重共线性是指自变量之间存在线性相关关系,即一个自变量可以是其他一个或几个自变量的线性组合。若存在多重共线性,计算自变量的偏回归系数时矩阵不可逆。其表现主要有:整个模型的方差分析结果与各个自变量的回归系数的检验结果不一致,专业判断有统计学意义的自变量检验结果却无意义,自变量的系数或符号与实际情况严重不符等。
检验方法主要有:容忍度(Tolerance)和方差膨胀系数(Variance inflation factor,VIF)。其中最常用的是VIF,计算公式为:

VIF的取值大于1。VIF值越接近于1,多重共线性越轻,反之越重。当多重共线性严重时,应采取适当的方法进行调整 [3]  。容忍度的值界于0至1之间,当容忍度值较小时,表示此自变量与其他自变量之间存在共线性。容忍度这个变量回归系数的估计值不够稳定,则回归系数的计算值也会有很大误差。方差膨胀系数是容忍度的倒数,VIF越大,表示自变量的容忍度越小,越有共线性问题。

  通常以10作为判断边界。当VIF<10,不存在多重共线性;当10<=VIF<100,存在较强的多重共线性;当VIF>=100, 存在严重多重共线性。

import numpy as np
from sklearn.linear_model import LinearRegression

coef0=np.array([5,6,7,8,9,10,11,12])
X1=np.random.rand(100,8)
y=np.dot(X1,coef0)+np.random.normal(0,1.5,size=100)
training=np.random.choice([True,False],p=[0.8,0.2],size=100)
lr1=LinearRegression()
lr1.fit(X1[training],y[training])
# 系数的均方误差MSE
print(((lr1.coef_-coef0)**2).sum()/8)
# 测试集准确率(R2)
print(lr1.score(X1[~training],y[~training]))

X2=np.column_stack([X1,np.dot(X1[:,[0,1]],np.array([1,1]))+np.random.normal(0,0.05,size=100)])
X2=np.column_stack([X2,np.dot(X2[:,[1,2,3]],np.array([1,1,1]))+np.random.normal(0,0.05,size=100)])
X3=np.column_stack([X1,np.random.rand(100,2)])

import matplotlib.pyplot as plt
clf=LinearRegression()
vif2=np.zeros((10,1))
for i in range(10):
tmp=[k for k in range(10) if k!=i]
clf.fit(X2[:,tmp],X2[:,i])
vifi=1/(1-clf.score(X2[:,tmp],X2[:,i]))
vif2[i]=vifi

plt.figure()
ax = plt.gca()
ax.plot(vif2)
#ax.plot(vif3)
plt.xlabel('feature')
plt.ylabel('VIF')
plt.title('VIF coefficients of the features')
plt.axis('tight')
plt.show()

转载于:https://www.cnblogs.com/liu-304711/p/10945717.html

多重共线性检验-方差膨胀系数(VIF)相关推荐

  1. 因变量 方差膨胀系数_SPSS技术:多重线性回归模型;极端值与多重共线性

    原标题:SPSS技术:多重线性回归模型:极端值与多重共线性 欢迎关注天善智能微信公众号,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区. 对商业智能BI.大数据分析挖掘.机器学习,pytho ...

  2. 数据分析——多重共线性检验

    在做线性回归的时候,一般分为以下几个步骤: 1.画散点图,简单的查看是否存在线性关系(3D以下) 2.线性模型跑一遍试试效果 3.其中需要查看以下几个指标:3.1 正太分布检验3.1 多重共线性.异方 ...

  3. 多元线性模型分类变量方差_第三十一讲 R多元线性回归中的多重共线性和方差膨胀因子...

    在前两讲中,我们介绍了多元线性回归的概念以及多元线性回归中的交互作用.今天学习的主要内容是多元线性回归中的多重共线性和方差膨胀因子. 1. 共线性的概念 1 共线性 在多元回归中,两个或多个预测变量可 ...

  4. 因变量 方差膨胀系数_16种常用的数据分析方法汇总

    一.描述统计 描述性统计是指运用制表和分类,图形以及计筠概括性数据来描述数据的集中趋势.离散趋势.偏度.峰度.缺失值填充:常用方法:剔除法.均值法.最小邻居法.比率回归法.决策树法. 正态性检验:很多 ...

  5. 多重共线性检验之方差膨胀因子VIF

    过程 1.构造每一个自变量与其余自变量的线性回归模型,例如,数 据集中含有p个自变量,则第一个自变量与其余自变量的线性组合可以 表示为 2.根据如上线性回归模型得到相应的判决系数R2R^2R2,进而计 ...

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

    这里提供一个 Python 实现的方法和原理趣分析 方差膨胀因子是非常经典缓解多元共线性的方法,原理简单,实现优雅,效果拔群.源代码源数据可私聊俺获取,每天固定时间查看和回复. 原理趣析 多重线性回归 ...

  7. Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?

    用一份数据跑回归,惯例先做了一下多重共线性的检验 参考网上的各种教程,大部分都是直接把自变量丢进去就可以出来结果 我的代码: 但这个结果和我拿spss跑回归得出来的VIF值完全不一样 python,只 ...

  8. python检测多重共线性程序_用 VIF 方法消除多维数据中的多重共线性

    多元线性回归是我们在数据分析中经常用到的一个方法,很多人在遇到多维数据时基本上无脑使用该方法,而在用多元线性回归之后所得到的结果又并不总是完美的,其问题实际上并不出在方法上,而是出在数据上.当数据涉及 ...

  9. 均值已知检验方差_方差分析案例

    案例-摘自<商务与经济统计学>第13章 作为对65岁和65岁以上老人长期研究的一部分,位于纽约州北部地区的wentworth医疗中心的社会学家和内科医生调查了地理未知和抑郁症之间的关系.抽 ...

最新文章

  1. 处理参数中存在多个连续空格,只显示一个空格,复制后搜索不到得问题
  2. 互动整合营销_初识网络整合营销
  3. 网工路由基础(8)路由重分布
  4. OpenGL实现3D立体显示
  5. css2列布局,左边div宽度固定,右边div宽度自适应
  6. Java容器List接口
  7. 简单的二维数组问题,不用不知道,一用吓一跳
  8. [JNI] 开发基础 (8)c语言typedef
  9. 如何正确使用条码标签打印软件
  10. java常用设计模式及其使用场景
  11. 仿迅雷播放器教程 -- 媒体播放器对比 (2)
  12. 坦白说php源码,qq坦白说新思路解密 附源码
  13. 配置“终端服务器授权”激活许可证服务器(转)
  14. OpenCV读取图片
  15. python打印列表中指定元素的所有下标(5种方法)
  16. [代码人生][分享]SQl语句学习专题
  17. IP地址、子网掩码与划分方法
  18. JavaScript之封装Math函数
  19. 端游开发用什么技术可以让用户更短时间内体验游戏?端游分发...
  20. 全球首份AR报告第二章:AR的工作原理

热门文章

  1. 自定义流程,匹配业务需求,还得是专业流程引擎
  2. 11.CNN实现真实猫狗图片分类
  3. Ubuntu 18.04 ROS安装
  4. iOS 支付宝支付及授权
  5. 【b091z11】潜伏者
  6. qt for python教程_PyQt教程 - pythonQt的安装和配置及版本间差异
  7. 什么是资产负债表?如何规范填写呢?
  8. 游戏是否对年轻人有好处?
  9. 20岁到30岁,是你最不可挥霍的光阴
  10. Revit中如何为曲面墙体开洞口,一键开洞?