Linear Regression多重共线性

本文介绍了多重共线性在线性回归中的影响,包括模型稳定性、解释性降低,以及如何通过岭回归、特征选择和增加样本量等方法来处理。通过实例展示了corr、pairplot和VIF的使用,以及如何通过删除相关性强的自变量来降低共线性。
摘要由CSDN通过智能技术生成

目录

介绍:

一、 corr

​二、pairplot 

三、VIF

3.1自带vif

 3.2自定义函数vif

四、heatmp(直观感受)

介绍:

多重共线性是指在线性回归模型中,自变量之间存在强相关性或线性关系,从而导致模型的稳定性和可解释性受到影响。

在线性回归中,我们希望自变量与因变量之间有一定的线性关系,且自变量之间尽可能不相关,这样可以更好地解释因变量的变化。然而,当自变量之间存在强相关性时,模型很难区分各自变量对因变量的独立贡献,导致估计结果不准确。

多重共线性会对线性回归模型产生以下影响:
1. 估计值不稳定:由于自变量之间存在强相关性,小的变动可能导致估计值发生较大变化,使得模型不稳定。
2. 估计值偏离:多重共线性会导致估计值偏离真实值,造成参数估计的失准。
3. 可解释性下降:由于自变量之间存在强相关性,我们无法准确判断每个自变量对因变量的独立贡献,从而降低了模型的可解释性。

为了解决多重共线性问题,可以采取以下方法:
1. 使用岭回归或Lasso回归:这些方法通过对系数加上惩罚项,可以减小系数估计值的方差,从而减轻多重共线性带来的影响。
2. 特征选择:通过选择具有较高解释性和较低相关性的自变量,可以降低多重共线性的影响。
3. 增加样本量:增加样本量可以减小参数估计的方差,从而降低多重共线性的影响。

总之,多重共线性是线性回归模型中常见的问题,会影响模型的稳定性和可解释性。通过合适的方法处理多重共线性,可以改善模型的效果并得到准确的估计结果。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns#多元共线性是指多元回归模型中两个或多个变量高度线性相关的情况,当回归模型中的自变量相互关联时,就会出现多重共线性,因为自变量应该是独立的,如果变量之间的相关程度足够高,那么在拟合模型和解释结果时就会出现问题
df=pd.read_csv('50_Startups.csv')
df.head()

 

一、 corr

df.corr()#相关性

X=X1=df.iloc[:,:-2]#取前三行为自变量
X.head()

 二、pairplot 

sns.pairplot(X)#两两对比,可以看到R&D Spend和Marketing Spend相关性高

 

三、VIF

3.1自带vif

from statsmodels.stats.outliers_influence import variance_inflation_factor
variance_inflation_factor(X.values,0)#第一项的共线性
#结果:8.384570754559961
variance_inflation_factor(X.values,1)#第二项的共线性
#结果:4.0264055178945535
variance_inflation_factor(X.values,2)#第三项的共线性
#结果:7.593983592680924

 3.2自定义函数vif

def vif(X):
    vif=pd.DataFrame()
    vif["variables"]=X.columns
    vif["VIF"]=[variance_inflation_factor(X.values,i) for i in range(X.shape[1])]
    return(vif)

vif(X)#共线性分析

X=X.drop('R&D Spend',axis=1)#去掉R&D Spend
vif(X)#共线性降低

四、heatmp(直观感受)

X1.corr()
sns.heatmap(X1.corr())#热图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值