如何用Python检验线性回归的假设是否满足

本文介绍了如何使用Python对线性回归模型进行假设检验,包括线性假设、误差期望值为0、无多重共线性和异方差性。通过实际例子展示了如何检查和解读这些假设的满足情况。
摘要由CSDN通过智能技术生成

如何用Python检验线性回归的假设是否满足

在这里插入图片描述

提示:该系列文章侧重代码编程实践,不涉及理论基础。如代码无法正常运行或有任何疑问,请告诉我,我将设法解答。


   线性回归作为数据分析的基础方法之一被广泛应用,但回归结果是否能够满足有效(effective)、无偏(unbiased)和一致性(consistent)呢?这篇文章将逐步详细介绍如何用Python(Jupyter Notebook)来检验我们的多元线性回归是否满足五大假设的要求。

   点此下载文章数据    提取码:0001
   若超链接不可用,请复制以下地址:
链接:https://pan.baidu.com/s/1Mv0TJ4GL2dehytFmbfzmog
提取码:0001

   做好准备,我们现在开始🚀

一、导入数据

   本文以受教育年限对个人工资这一经典研究问题为例进行讲解。为保证示例简明,线性回归仅适用了数据中的部分连续数据变量。

import pandas as pd
#导入数据 请预先下载好数据并上传至Jupyter Notebook
data=pd.read_csv('train.csv')
#检查一下数据吧,显示数据里的前4行
train.head()

   运行后,以看到数据如下
在这里插入图片描述
   接着我们定义定义自变量和因变量

#定义自变量集X包含educ(受教育年限)、hours(工作小时数)、IQ(智商得分)以及exper(工作总年限)四个变量
X = train[['educ','hours', 'IQ','exper']]
#看一下我们的自变量吧
X.head()
#定义因变量y是lwage(小时工资的对数)
y = pd.Series(train.lwage)

   我们可以看到在17个变量里,我们只选用了其中的四个作为自变量
在这里插入图片描述

二、进行线性回归

   Python里线性回归的方法不止一种,我们用以下方式进行:

import statsmodels.api as sm
from statsmodels.formula.api import ols

lin_reg = ols('y~educ+hours+IQ+exper', data=train).fit()
lin_reg.summary()

   我们得到如下结果:

在这里插入图片描述
   对于结果的解释,此处不是重点。我们现在就可以开始对于假设条件是否满足的检验了👇

三、假设检验

   在你们的计量课程中,应该已经学过BLUE。什么意思呢?也就是说根据高斯-马尔可夫(Gauss-Markov )定理,在线性回归模型中,普通最小二乘 (OLS)估计 是最佳线性无偏估计 (BLUE),但前提是满足经典线性回归假设:

  1. 所有参数均为常数且满足线性关系
  2. 误差项(errors)的期望均值为0,且与自变量无关
  3. 因变量不能有完全共线性
  4. 误差项是同方差(homoscedasticity of errors),也即误差项的方差不受到自变量的影响,是一个固定不变的值

   此外,与其他无偏线性估计量相比,BLUE 中的“最佳”意味着估计量的方差最小。

假设1:线性假设(Linearity of the model)

   在线性回归中因变量y是自变量X的线性方程,因此我们的参数(parameters)必须是线性的。如果我们用线性模型去拟合非线性的数据,那么就会造成很严重的预测误差。

   那么,我们可以用两张图来检查是否符合线性:(1)实际值与预测值;(2)残差与预测值。如果在第一张图中,所有的点都围绕对角线对称分布;或者第二张途中所有的点都成水平线对称分布,那么我们认为是符合线性假设的。
为了检测非线性,可以检查观察值与预测值或残差与预测值的图。 期望的结果是点在前一个图中围绕对角线对称分布,在后一个图中围绕水平线对称分布。 在这两种情况下,方差大致恒定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linyue_2021

请为我多多加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值