VIF 多重共线性膨胀因子

VIF 多重共线性膨胀因子方差膨胀系数(varianceinflationfactor,VIF)是衡量多元线性回归模型中复(多重)共线性严重程度的一种度量。它表示回归系数估计量的方差与假设自变量间不线性相关时方差相比的比值。多重共线性是指自变量之间存在线性相关关系,即一个自变量可以是其他一个或几个自变量的线性组合。若存在多重共线性,计算自变量的偏回归系数时矩阵不可逆。其表现主要有:整个模型的方差分析结果与各个自变量的回归系数的检验结果不一致,专业判断有统计学意义的自变量检验结果却无意义,自变量的系数或符号与实际情况严重不符等

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

方差膨胀系数(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, 存在严重多重共线性。

例子

from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from statsmodels.stats.outliers_influence import variance_inflation_factor
import numpy as np
import pandas as pd
min_max_scaler = MinMaxScaler()
iris = load_iris()
iris_scaler = min_max_scaler.fit_transform(iris.data)
iris_scaler = pd.DataFrame(iris_scaler)
iris_scaler['target'] = iris.target
X = np.matrix(iris_scaler)
VIF_list = [variance_inflation_factor(X, i) for i in range(X.shape[1])]
print(VIF_list)

返回值为

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

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

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


相关推荐

  • tortoisesvn如何下载(Snes汉化教程)

    (本操作是已经下载TortoiseSVN后,通过官网下载汉化包进行的操作)1、首先进入到官网https://tortoisesvn.net/downloads.html2、进入到官网首页,点击Translations3、进入到翻译页面,点击download4、进入到下载页面,选择适合自己版本的安装包,我下载的是1.14.1-64-bit;5、找到自己下载的汉化包,点击下一步,依次进行即可,便会自动同步6、右键打开TortoiseSVN,选择Sett…

    2022年4月17日
    310
  • 最长上升子序列 LIS算法实现[通俗易懂]

    最长上升子序列 LIS算法实现[通俗易懂]最长上升子序列LIS算法实现LIS(LongestIncreasingSubsequence)最长上升(不下降)子序列有两种算法复杂度为O(n*logn)和O(n^2)。在上述算法中,若使用朴素的顺序查找在D1..Dlen查找,由于共有O(n)个元素需要计算,每次计算时的复杂度是O(n),则整个算法的时间复杂度为O(n^2),与原来算法相比没有任何进步。但是由于D的特点(2),在D中查…

    2022年6月5日
    23
  • 网关gateway详解_网关使用

    网关gateway详解_网关使用见:https://baike.baidu.com/item/%E7%BD%91%E5%85%B3/98992?fr=aladdin及其它。网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。使用在不同的通…

    2025年7月23日
    0
  • uwsgi模式_Uwsgi配置文档[通俗易懂]

    uwsgi模式_Uwsgi配置文档[通俗易懂]Uwsgi配置文档(2017-11-2011:16:38)uwsgi的安装也是可以直接采用yum安装,配置也是比较简单,不过要想成功启动Python程序,需要用yum安装一个插件uwsgi-plugin-python如果想安装所有插件,可以直接安装uwsgi-plugin-all软件包说明:虚拟环境的python路径可以直接设置为本地python环境路径,其他路径根据自己需要修改UWSGI配置…

    2022年9月11日
    0
  • Javascript Array forEach()中无法return和break,代替方法some()与every()「建议收藏」

    Javascript Array forEach()中无法return和break,代替方法some()与every()「建议收藏」我们都知道for循环里要跳出整个循环是使用break,但在数组中用forEach循环如要退出整个循环使用break会报错,使用return也不能跳出循环。使用break将会报错:vararr=[1,2,3,4,5];varnum=3;arr.forEach(function(v){if(v==num){break;}console.log

    2022年7月13日
    12
  • 数据结构七大排序算法图解[通俗易懂]

    数据结构七大排序算法图解[通俗易懂]万字手撕七大排序(代码+动图演示)…

    2022年8月30日
    0

发表回复

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

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