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

多重共线性检验-方差膨胀系数(VIF)  方差膨胀系数(varianceinflationfactor,VIF)是衡量多元线性回归模型中复(多重)共线性严重程度的一种度量。它表示回归系数估计量的方差与假设自变量间不线性相关时方差相比的比值。  多重共线性是指自变量之间存在线性相关关系,即一个自变量可以是其他一个或几个自变量的线性组合。若存在多重共线性,计算自变量的偏回归系数时矩阵不可逆。其表现主要有:整个模型的方差分析…

大家好,又见面了,我是你们的朋友全栈君。

 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132045.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows编程(网络编程)

    Windows编程(网络编程)套接字类型与协议设置SOCK_STREAM[流套接字]TCP面向连接、可靠的数据传输适合传输大量的数据,不支持广播、多播SOCK_DGRAM[数据包套接字]

    2021年12月13日
    39
  • Spring整合Sharding-JDBC分库分表详情

    Spring整合Sharding-JDBC分库分表详情Spring整合Sharding-JDBC分库分表详情一、概述最初线上系统的业务量不是很大,业务数据量并不大,比如说单库的数据量在百万级别以下(事实上千万级别以下都还能支撑),那么MySQL的单库即可完成任何增/删/改/查的业务操作。随着业务的发展,单个DB中保存的数据量(用户、订单、计费明细和权限规则等数据)呈现指数级增长,那么各种业务处理操作都会面临单DB的IO读写瓶颈带来的性能问题。S…

    2022年6月14日
    27
  • vscode连接力扣题库

    vscode连接力扣题库vscode连接力扣题库下载力扣插件回到力扣,点击题库,打开开发者工具(f12),点击网络,再次点击题库,点击标头,下滑找到cookie,复制cookie的值回到vscode,点击力扣图标,点击登录图标(如图),选择cookie登录,将刚刚复制的cookie值粘贴在这里即可…

    2025年8月12日
    2
  • 浅谈Vue.js_Vue js quote

    浅谈Vue.js_Vue js quote作为一名Vue.js的忠实用户,我想有必要写点文章来歌颂这一门美好的语言了,我给它的总体评价是“简单却不失优雅,小巧而不乏大匠”,下面将围绕这句话给大家介绍Vue.js,希望能够激发你对Vue.js的

    2022年8月1日
    8
  • ubuntu16.04配置网卡「建议收藏」

    ubuntu16.04配置网卡「建议收藏」第一步:查看网卡信息输入ifconfig命令查看网卡信息,下图红圈处就是网卡名称。第二步:配置网卡文件注意:不同的linux系统,网卡配置文件是不同的,这里ubuntu的网卡配置文件是/etc/network/interfaces。输入下面命令进行编辑网卡文件sudovi/etc/network/interfaces默认的文件内容如下:autolo…

    2022年5月24日
    101
  • poe交换机能连接普通交换机_两台poe交换机之间怎么连接

    poe交换机能连接普通交换机_两台poe交换机之间怎么连接PoE交换机的链接方式有哪些?前面我们在介绍监控的供电方式时有介绍PoE供电,有一些朋友对poe供电存到一些疑问,那么,交换机品牌16年生产厂家ONV光网视小编今天就用图文形式来与您一起了解PoE的几种供电方式和连接方法。交换机一、交换机和终端都支持PoE  这种方法PoE交换机直接通过网线接到支持PoE供电的无线AP和网络摄像机上,这种方法最简单,但也需要注意如下两点:  1、确定PoE…

    2022年10月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号