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


相关推荐

  • Centos7 下安装tomcat7

    Centos7 下安装tomcat7一、安装jdk1、检查jdk版本信息,输入“rpm-qa|grepjava”查看2、用命令“rpm-e–nodepsXXXXXXXX”删除已经安装的java版本,其中XXXXXXX表示上面查询到的Java信息。如下图3、下载JDKJDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-do…

    2022年5月19日
    38
  • IDEA使用JDBC连接MySQL数据库详细教程「建议收藏」

    IDEA使用JDBC连接MySQL数据库详细教程「建议收藏」首先需要保证你已经成功安装mysql接下来下载连接MySQL数据库的驱动使用JDBC连接MySQL数据库的驱动为Connentor/J,这里以最新版本的8.0为例解压zip文件,随便解压到一个地方就好,当然作为程序员,需要有好习惯的创建java项目,导入mysql-connector-java-8.0.13.jar包下面再来看下导入jar的步骤写代码//导入包importja…

    2022年7月13日
    49
  • DTCC 2019 | 深度解码阿里数据库实现 数据库内核——基于HLC的分布式事务实现深度剖析…

    DTCC 2019 | 深度解码阿里数据库实现 数据库内核——基于HLC的分布式事务实现深度剖析…

    2021年7月7日
    87
  • ROC曲线详解

    ROC曲线详解最近学习遇到这个概念,看了半天总算明白了这个曲线的意义。—————————————————————————————————分割线1ROC曲线的概念受试者工作特征曲线(receiveroperatingcharacteristiccurve,简称ROC曲线),又称为感受性曲线(sensitivitycurve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应

    2022年5月17日
    60
  • dubbo负载均衡策略配置

    dubbo负载均衡策略配置前言在生产环境中,服务的集群部署是常有的事,从消费端来说,本身并不关注所需要的服务是由哪台机器提供,但是为了应用的健壮性和高可用性,从消费端来说,可以配置一定的负载均衡策略,确保消费端的应用能够及时获取到服务的响应数据dubbo负载均衡策略dubbo内置了四种负载均衡算法供开发中调用random随机算法,是Dubbo默认的负载均衡算法,多台机器上的服务随机选取一台的服务进行调用,如果各机器的性能相差不大的情况下,可以考虑使用这种策略。但这种策略可能存在服务堆积问题roundrobin轮询

    2022年7月11日
    20
  • Linux命令之tail – 输出文件尾部/动态监视文件尾部

    Linux命令之tail – 输出文件尾部/动态监视文件尾部本文链接:http://codingstandards.iteye.com/blog/832575  (转载请注明链接)用途说明tail命令可以输出文件的尾部内容,默认情况下它显示文件的最后十行。它常用来动态监视文件的尾部内容的增长情况,比如用来监视日志文件的变化。与tail命令对应的是head命令,用来显示文件头部内容。 常用参数格式:tailfile

    2022年6月4日
    33

发表回复

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

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