多重共线性概念

共线性问题指的是输入的自变量之间存在较高的线性相关度。共线性问题会导致回归模型的稳定性和准确性大大降低,另外,过多无关的维度计算也很浪费时间。

多重共线性产生原因

  1. 样本量太少,导致部分数据以外的呈现线性关系

  2. 由于某些原因,导致多个变量的变化趋势一致

  3. 各变量之间存在线性关系,或关联性较强

共线性检验

1. 方差膨胀系数(variance inflation factor,VIF)

VIF是容忍度的倒数,值越大则共线性问题越明显,通常以10作为判断边界。当VIF<10,不存在多重共线性;当10<=VIF<100,存在较强的多重共线性;当VIF>=100, 存在严重多重共线性。

import pandas as pd
from statsmodels.stats.outliers_influence import variance_inflation_factor
import numpy as npx = pd.DataFrame(np.random.rand(100, 8))# 当VIF<10,说明不存在多重共线性;当10<=VIF<100,存在较强的多重共线性,当VIF>=100,存在严重多重共线性
vif = [variance_inflation_factor(x.values, x.columns.get_loc(i)) for i in x.columns]

2. 容忍度(Tolerance)

容忍度是每个自变量作为因变量对其他自变量进行回归建模时得到的残差比例,大小用1减得到的决定系数来表示。容忍度值越小说明这个自变量与其他自变量间越可能存在共线性问题。

import pandas as pd
from statsmodels.stats.outliers_influence import variance_inflation_factor
import numpy as npx = pd.DataFrame(np.random.rand(100, 8))# 当VIF<10,说明不存在多重共线性;当10<=VIF<100,存在较强的多重共线性,当VIF>=100,存在严重多重共线性
tol = [1./variance_inflation_factor(x.values, x.columns.get_loc(i)) for i in x.columns]
print(tol)

3. 特征值(Eigenvalue)

该方法实际上就是对自变量做主成分分析,如果多个维度的特征值等于0,则可能有比较严重的共线性。

import pandas as pd
import numpy as npx = pd.DataFrame(np.random.rand(8, 8)) # 计算特征必须为矩阵才行,也可以对缺失的地方补0eigenvalue, featurevector = np.linalg.eig(x)

4. 相关系数

如果相关系数R>0.8时就可能存在较强相关性

import pandas as pd
import numpy as npx = pd.DataFrame(np.random.rand(100, 8))
print(x.corr())

共线性数据处理

  1. 增大样本量:增大样本量可以消除由数据量不足而出现的偶然的共线性现象。

  2. 做差分:对于时间序列来讲一阶差分可以有效地消除多重共线性。

  3. 岭回归法(Ridge Regression):通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价来获得更实际和可靠性更强的回归系数。

  4. 逐步回归法(Stepwise Regression):每次引入一个自变量进行统计检验,然后逐步引入其他变量,同时对所有变量的回归系数进行检验,如果原来引入的变量由于后面变量的引入而变得不再显著,那么久将其剔除,逐步得到最有回归方程。

  5. 主成分回归(Principal Components Regression):通过主成分分析,使用PCA降维后再建模。

  6. 对于高共线性且价值不大的数据直接删除即可。

Python 多重共线性检验相关推荐

  1. python f检验 模型拟合度_多元线性回归模型检验和预测

    一.概述 (F检验)显著性检验:检测自变量是否真正影响到因变量的波动. (t检验)回归系数检验:单个自变量在模型中是否有效. 二.回归模型检验 检验回归模型的好坏常用的是F检验和t检验.F检验验证的是 ...

  2. python方差检验分析(ANOVA)

    python方差检验分析(ANOVA) 方差分析(Analysis of Variance,简称ANOVA),又称"变异数分析",是R.A.Fisher发明的,用于两个及两个以上样 ...

  3. Python | KS检验以及其余非参数检验的实现

    Python | KS检验以及其余非参数检验的实现 1 什么是KS检验 2 KS检验分类? 3 KS检验的Python实现 3.1 检验指定的数列是否服从正态分布 3.2 检验指定的两个数列是否服从相 ...

  4. Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?

    用一份数据跑回归,惯例先做了一下多重共线性的检验 参考网上的各种教程,大部分都是直接把自变量丢进去就可以出来结果 我的代码: 但这个结果和我拿spss跑回归得出来的VIF值完全不一样 python,只 ...

  5. python t检验_讲讲统计学中T检验的种类

    这一篇给大家介绍一下T检验的种类以及具体的Python实现代码.T检验是比较两个均值差异的,不同种类T检验的差别其实在于均值的计算差异. 1.单样本T检验 单样本T检验是用来检验一组样本的均值A与一个 ...

  6. python单位根检验看结果_Python ADF 单位根检验 如何查看结果的实现

    如下所示: from statsmodels.tsa.stattools import adfuller print(adfuller(data)) (-8.14089819118415, 1.028 ...

  7. python 相关性检验怎么计算p值_不会Python进行时间序列预测?不要紧,大神来教你...

    作者:Leandro Rabelo译者:李洁整理:Lemonbit本文内容较长,较为详细的阐述了进行时间序列预测的步骤,有些内容可能暂时用不到或者看不懂,但不要紧,知道有这么一个概念,后续碰到的时候, ...

  8. python 单位根检验代码_python时间序列分析

    什么是时间序列 时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值.在这里需要强调一点的是,时间序列分析并不是关于时间的回归,它主要是研究自身的变化规律的(这里 ...

  9. python 相关性检验怎么计算p值_收藏 | 大神教你用Python预测未来:一文看懂时间序列...

    (由Python大本营付费下载自视觉中国) 作者 |  Leandro Rabelo 译者 | 李洁 整理 | Lemonbit 出品 | Python数据之道 本文内容较长,较为详细的阐述了进行时间 ...

  10. python adf检验_python做adf检验

    adf检验是用来检验序列是否平稳的方式 一般来说是时间序列中的一种检验方法 python中可使用现成的工具statsmodels来实现adf检验 import numpy as np import s ...

最新文章

  1. 1039 Course List for Student
  2. 06Decorator(装饰)模式
  3. tf.expand_dims 来增加维度
  4. springCloud(微服务的概念)1-1
  5. 【Python3】POP3协议收邮件
  6. 不会诈骗的公司 都倒闭了
  7. Spring自学日志07(整合Mybatis)
  8. 代数学笔记11: 分圆域,分圆多项式,求解17次方程
  9. 主板有几种尺寸_工控机主板哪个牌子好?2019工控主板十大品牌排行榜
  10. 20210325:力扣递归,回溯类型题目合集
  11. wordpress建立php站点地图,WordPress站点地图(sitemap)制作方法(免插件)
  12. Enzo Life Sciences/艾美捷丨线粒体/胞浆分离试剂盒
  13. 练习:定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。 * 例如:“abcba“、“上海自来水来自海上“均为对称字符串。
  14. 怎样用c语言制作文件保险箱,开题(电子保险箱)技巧.doc
  15. button layui-btn 色调
  16. 智能对话系统原理和实践
  17. 将一串数字转为大写人民币形式
  18. 免费外贸Wordpress网站内容采集教程
  19. 为FLASH(.SWF)文件添加播放控制条
  20. hadoop系列十八——案例 App数据统计与报表统计

热门文章

  1. 为浏览器添加Bing搜索引擎
  2. python语音聊天_语音聊天实现
  3. 【操作系统原理-陈渝老师】第一章 课程介绍及操作系统初识
  4. matlab 图像分割_数字图像处理第三版中_冈萨雷斯【MATLAB】(推书活动第十七期)...
  5. 摩尔定律,贝尔定律,吉尔德定律,麦特卡尔夫定律
  6. linux 硬盘坏块检测,Linux上检测硬盘上的坏道和坏块
  7. 微信第三方平台服务器,微信三方平台接入
  8. java写文件描述_详解Java中的File文件类以及FileDescriptor文件描述类
  9. 计算机主机需要ccc,计算机电脑需要做3c认证吗?
  10. Qt5/6使用FFmpeg进行视频格式转换的两种方式