python的ols_Python Statsmodels 统计包之 OLS 回归

本文深入介绍了Python中的Statsmodels库如何进行普通最小二乘法(OLS)回归分析,包括简单的线性回归、高次模型回归和哑变量的处理。通过实例展示了如何构建模型、拟合数据并绘制拟合结果。此外,还强调了线性回归在实际应用中的重要性。
摘要由CSDN通过智能技术生成

Statsmodels 是 Python 中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检

验等等的功能。Statsmodels 在计量的简便性上是远远不及 Stata 等软件的,但它的优点在于可以与 Python 的其他的任务(如 NumPy、Pandas)有效结合,提高工作效率。在本文中,我们重点介绍最回归分析中最常用的 OLS(ordinary least square)功能。

当你需要在 Python 中进行回归分析时……

import statsmodels.api as sm!!!

在一切开始之前

上帝导入了 NumPy(大家都叫它囊派?我叫它囊辟),

import numpy as np

便有了时间。

上帝导入了 matplotlib,

import matplotlib.pyplot as plt

便有了空间。

上帝导入了 Statsmodels,

import statsmodels.api as sm

世界开始了。

简单 OLS 回归

假设我们有回归模型

Y=β0+β1X1+⋯+βnXn+ε,

并且有 k 组数据

。OLS 回归用于计算回归系数 βi 的估值 b0,b1,…,bn,使误差平方

最小化。

statsmodels.OLS 的输入有 (endog, exog, missing, hasconst) 四个,我们现在只考虑前两个。第一个输入 endog 是回归中的反应变量(也称因变量),是上面模型中的 y(t), 输入是一个长度为 k 的 array。第二个输入 exog 则是回归变量(也称自变量)的值,即模型中的x1(t),…,xn(t)。但是要注意,statsmodels.OLS 不会假设回归模型有常数项,所以我们应该假设模型是

并且在数据中,对于所有 t=1,…,k,设置 x0(t)=1。因此,exog的输入是一个 k×(n+1) 的 array,其中最左一列的数值全为 1。往往输入的数据中,没有专门的数值全为1的一列,Statmodels 有直接解决这个问题的函数:sm.add_constant()。它会在一个 array 左侧加上一列 1。(本文中所有输入 array 的情况也可以使用同等的 list、pd.Series 或 pd.DataFrame。)

确切地说,statsmodels.OLS 是 statsmodels.regression.linear_model 里的一个函数(从这个命名也能看出,statsmodel 有很多很多功能,其中的一项叫回归)。它的输出结果是一个 statsmodels.regression.linear_model.OLS,只是一个类,并没有进行任何运算。在 OLS 的模型之上调用拟合函数 fit(),才进行回归运算,并且得到 statsmodels.regression.linear_model.RegressionResultsWrapper,它包含了这组数据进行回归拟合的结果摘要。调用 params 可以查看计算出的回归系数 b0,b1,…,bn。

简单的线性回归

上面的介绍绕了一个大圈圈,现在我们来看一个例子,假设回归公式是:

我们从最简单的一元模型开始,虚构一组数据。首先设定数据量,

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值