python检验多重共线性_python – 在statsmodels中捕获高多重共线性

本文介绍了如何在使用Python的statsmodels库进行线性回归时检测多重共线性问题。通过检查模型拟合后的警告以及相关矩阵的特征值,可以判断是否存在多重共线性。特征值接近于零表明变量间存在共线性,可以通过特征向量找出相关变量。文章还提供了一个示例,展示如何通过标准化和特征向量计算验证这一现象。
摘要由CSDN通过智能技术生成

说我在statsmodels中适合模型

mod = smf.ols('dependent ~ first_category + second_category + other', data=df).fit()

当我做mod.summary()时,我可能会看到以下内容:

Warnings:

[1] The condition number is large, 1.59e+05. This might indicate that there are

strong multicollinearity or other numerical problems.

有时警告是不同的(例如,基于设计矩阵的特征值).如何在变量中捕获高多重共线性条件?此警告是否存储在模型对象的某处?

另外,我在哪里可以找到summary()中字段的描述?

解决方法:

您可以通过检查相关矩阵的特征值来检测高多重共线性.非常低的特征值表明数据是共线的,并且相应的特征向量显示哪些变量是共线的.

如果数据中没有共线性,则可以预期没有任何特征值接近零:

>>> xs = np.random.randn(100, 5) # independent variables

>>> corr = np.corrcoef(xs, rowvar=0) # correlation matrix

>>> w, v = np.linalg.eig(corr) # eigen values & eigen vectors

>>> w

array([ 1.256 , 1.1937, 0.7273, 0.9516, 0.8714])

但是,如果说x [

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值