多重共线性检验-方差膨胀系数(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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python数据分析入门笔记[1]

    python数据分析入门笔记[1](五)读写SQL数据库ps.数据库的代码是我直接从网络上粘贴过来的,没有测试过是不是可行,先贴上来。数据库我还在摸索中,学习心得学习笔记之类的大家可以一起分享23333~(二)数据排序(用的是t

  • linux之fstab文件详解「建议收藏」

    linux之fstab文件详解「建议收藏」/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less/etc/fstab来查看,如果要修改的话,则用命令vi/etc/fstab来修改。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。

    2022年10月23日
  • HTML5移动端手机网站开发流程

    HTML5移动端手机网站开发流程最近一直在研究移动手机网站的开发,发现做手机网站没有想象中的那么难。为什么会这么说呢?我们试想下:我们连传统的PC网站都会做,难道连一个小小的手机网站难道都搞不定吗?其实手机网站就是一个微缩版的PC网站罢了!至于为什么觉得难、觉得无从下手。段亮觉得有以下几点:一、没有完整的思路和流程就像做网站的流程一样,如果你能知道它的流程,我相信就不会觉得做手机网站难!真正难的是你没有思

  • 华硕笔记本r414u怎么安装键盘_华硕R414U详细拆机装内存条步骤!

    华硕笔记本r414u怎么安装键盘_华硕R414U详细拆机装内存条步骤!华硕R414U手动拆解安装内存条详细步骤电脑配置不够用,想要自己手动diy,但不同类型的电脑的内部结构都不同,或与会给第一次拆解此型号电脑的小伙伴带来不少麻烦。前几天小编就给自己的电脑加装了一块内存条,今天就和大家分享一下具体的拆解过程;详细步骤见下面。小编拆解的机型是华硕的R414U,这款电脑的自带内存条是集成在主板的,但拆开后发现主板上有预留的扩展内存卡槽的;比较麻烦的是不想其它的电脑在后盖内…

  • getMessage(),getFile,getLine获取异常用法

    getMessage(),getFile,getLine获取异常用法

  • QT 面试题汇总[通俗易懂]

    QT 面试题汇总[通俗易懂]一、讲述Qt信号槽机制与优势与不足优点:①类型安全。需要关联的信号槽的签名必须是等同的。即信号的参数类型和参数个数同接受该信号的槽的参数类型和参数个数相同。若信号和槽签名不一致,编译器会报错。②松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是那个对象的那个信号槽接收它发出的信号,它只需在适当的时间发送适当的信号即可,而不需要关心是否被接受和那个对象接受了。Qt就保证了适当的槽得到了调用,即使关联的对象在运行时被删除。程序也不会奔溃。…

发表回复

您的电子邮箱地址不会被公开。

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