多重共线性检验之方差膨胀因子VIF[通俗易懂]

多重共线性检验之方差膨胀因子VIF[通俗易懂]过程1、构造每一个自变量与其余自变量的线性回归模型,例如,数据集中含有p个自变量,则第一个自变量与其余自变量的线性组合可以表示为2、根据如上线性回归模型得到相应的判决系数R2R^2R2,进而计算第一个自变量的方差膨胀因子VIF:importpandasaspdimportnumpyasnpfromsklearnimportmodel_selectionimportstatsmodels.apiassnfromstatsmodels.stats.outlier

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

过程

1、构造每一个自变量与其余自变量的线性回归模型,例如,数 据集中含有p个自变量,则第一个自变量与其余自变量的线性组合可以 表示为
在这里插入图片描述
2、根据如上线性回归模型得到相应的判决系数 R 2 R^2 R2,进而计算第 一个自变量的方差膨胀因子VIF:
在这里插入图片描述

import pandas as pd
import numpy as np
from sklearn import model_selection
import statsmodels.api as sn
from statsmodels.stats.outliers_influence import variance_inflation_factor

sdata = pd.read_csv("../input/traindatas/char7/Predict to Profit.csv")
print(sdata.columns)
X  = sn.add_constant(sdata.loc[:,['RD_Spend', 'Marketing_Spend']])
vif = pd.DataFrame()
vif["Ficture"] = X.columns
vif["Fctor"] = [variance_inflation_factor(X.values,i) for i in range(X.shape[1])]
print(vif)

执行结果如下,如上结果所示,两个自变量对应的方差膨胀因子均低于10,说明构 建模型的数据并不存在多重共线性。如果发现变量之间存在多重共线性 的话,可以考虑删除变量或者重新选择模型

Index(['RD_Spend', 'Administration', 'Marketing_Spend', 'State', 'Profit'], dtype='object')
           Ficture     Fctor
0            const  4.540984
1         RD_Spend  2.026141
2  Marketing_Spend  2.026141

过程计算

import pandas as pd
import numpy as np
from sklearn import model_selection
import statsmodels.api as sn
from statsmodels.stats.outliers_influence import variance_inflation_factor

sdata = pd.read_csv("../input/traindatas/char7/Predict to Profit.csv")
model = sn.formula.ols("RD_Spend~Marketing_Spend",data=sdata).fit()
print(1/(1-model.rsquared))

执行结果

2.026140603233619

上面我仅仅计算了以RD_Spend为因变量计算的VIF值,和上面的一样,为2.026140603233619

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

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

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

相关推荐

  • matlab2016a安装「建议收藏」

    1、下载MATLAB2016a安装文件2、下载Matlab2016a破解文件3、解压安装文件,安装文件为iso格式,但是不能通过虚拟光驱安装,需要将iso文件用解压软件解压。4、点击setup.exe,进行安装。5、点击setup.exe,之后稍等一会儿,MathWorks安装程序启动,启动后选择“使用文件安装密钥不需要Internet连接”6、点击下一步,是否接受许可协议的条款哪儿…

    2022年4月12日
  • 那些强悍的PHP一句话后门

    那些强悍的PHP一句话后门以一个学习的心态来对待PHP后门程序,很多PHP后门代码让我们看到程序员们是多么的用心良苦。强悍的PHP一句话后门这类后门让网站、服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的。今天我们细数一些有意思的PHP一句话木马。利用404页面隐藏PHP小马 PHP  1 2 3 4…

    2022年5月11日
  • Debug | ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。

    Debug | ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。在安装pipinstalljupyterthemes时遇到了无法快乐pip的情况:报错信息ERROR:CouldnotinstallpackagesduetoanOSError:[WinError5]拒绝访问。:’C:\\Users\\…\\AppData\\Local\\Temp\\pip-uninstall-xq6nqdvs\\jupyter-notebook.exe’Considerusingthe–useroptionorchecktheper

    2022年6月24日
  • 【离散数学】单射、满射、双射、映射的合成与逆映射

    【离散数学】单射、满射、双射、映射的合成与逆映射单射、满射、双射、映射的合成与逆映射

    2022年5月15日
  • Word2Vec原理详解

    Word2Vec原理详解写在前面为了更方便读者学习,笔者下载了word2vec源码共享在云盘(google官网有时会访问不了),地址。还有关于word2vec实战的地址下面是转载内容:word2vec是Google于2013年开源推出的一个用于获取wordvector的工具包,它简单、高效,因此引起了很多人的关注。由于word2vec的作者TomasMikolov在两篇相关的论文[3,4]

    2022年5月17日
  • set跟map的区别_oracle set用法

    set跟map的区别_oracle set用法1.Map是键值对,Set是值的集合,当然键和值可以是任何的值;2.Map可以通过get方法获取值,而set不能因为它只有值;3.都能通过迭代器进行for…of遍历;4.Set的值是唯一的可以做数组去重,Map由于没有格式限制,可以做数据存储5.map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。SetSet对象允许你存储任何类型的值,无论.

    2022年9月6日

发表回复

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

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