多重共线性检验-方差膨胀系数(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dispatch_once认识分析

    dispatch_once认识分析

    2022年1月5日
    42
  • 五大常用算法之五:分支限界法

    一、基本描述类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找

    2021年12月25日
    33
  • DTU连接自建MQTT服务器

    DTU连接自建MQTT服务器DTU连接自建MQTT服务器DTU串口助手连接电脑,图片中485端口被变送器占用,飞线用来测试配置参数如图:重启DTU网络连接正常。启动java服务端启动连接成功发送透传测试数据查看串口助手:收到透传数据DTU发送透传数据查看Java服务端收到透传数据…

    2022年5月28日
    62
  • 巧用cssText[通俗易懂]

    巧用cssText[通俗易懂]IE6/7/8下cssText值与IE9/Firefox/Safari/Chrome/Opera不同1,IE6/7/8下cssText下返回值结尾没有分号,且属性名四十大写TESTvardiv=document.getElementsByTagName(‘div’);alert(div[0].style.cssText);IE6/7/8下 IE9/F

    2022年7月26日
    2
  • 数据结构视频教程哪个好[通俗易懂]

    数据结构视频教程哪个好[通俗易懂]来源:我是码农,转载请保留出处和链接!本文链接:http://www.54manong.com/?id=1207目前,具我粗略不完全统计,网络上流传的数据结构视频教程大概有80个以上,这些视频我都发布到我的网站了,欢迎大家随时过来下载,数据结构视频教程下载,其中大多数都是高校老师录制的,还有一些是学习机构录制的,另外就是一些个人,例如小甲鱼,完全出于爱好提供给大家,非常棒。下面我先给大家介…

    2022年10月8日
    0
  • python读取txt文件并画图[通俗易懂]

    1,使用python读取txt文件已知txt文件内容如下:001124394165256361234567请以第一列为x轴,第二列为y轴画图 步骤如下: 1)使用readlines读取文件 2)建立两个空列表X,Y,将第一列的数字放入X,第二列的数字放入Y中 3)以X,Y为轴画图 实现如下…

    2022年4月7日
    471

发表回复

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

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