使用statsmodels实现线性回归

statsmodels简介

Statsmodels 是 Python 中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检
验等等的功能。Statsmodels 在计量的简便性上是远远不及 Stata 等软件的,但它的优点在于可以与 Python 的其他的任务(如 NumPy、Pandas)有效结合,提高工作效率。在此,重点介绍最回归分析中最常用的 OLS(ordinary least square)功能。

当你需要在 Python 中进行回归分析时……
import statsmodels.api as sm!!!

关于统计模型

statsmodels是一个Python软件包,为scipy提供了补充,以进行统计计算,包括描述性统计以及统计模型的估计和推断。

statsmodels主要包括如下子模块:

回归模型:线性回归,广义线性模型,稳健的线性模型,线性混合效应模型等等。

方差分析(ANOVA)。

时间序列分析:AR,ARMA,ARIMA,VAR和其它模型。

非参数方法: 核密度估计,核回归。

统计模型结果可视化。

比较:statsmodels更关注统计推断,提供不确定估计和参数p-value。相反的,scikit-learn注重预测。

主要特点

线性回归模型:

普通最小二乘法
广义最小二乘法
加权最小二乘法
具有自回归误差的最小二乘
分位数回归
递归最小二乘法

具有混合效应和方差成分的混合线性模型
GLM:支持所有单参数指数族分布的广义线性模型
用于二项式和泊松的贝叶斯混合GLM
GEE:单向聚类或纵向数据的广义估计方程

离散模型:

Logit 和 Probit
多项 logit (MNLogit)
泊松和广义泊松回归
负二项式回归
零膨胀计数模型

RLM: 鲁棒的线性模型,支持多个 M 估计器。

时间序列分析:时间序列分析模型
完整的StateSpace建模框架
季节性ARIMA和ARIMAX模型
VARMA和VARMAX模型
动态因子模型
未观测到的组件模型

马尔可夫切换模型(MSAR),也称为隐马尔可夫模型(HMM)

单变量时间序列分析:AR,ARIMA
矢量自回归模型,VAR和结构VAR
矢量误差修正模型,VECM
指数平滑,Holt-Winters
时间序列的假设检验:单位根,协整和其他
用于时间序列分析的描述性统计数据和过程模型

生存分析:

比例风险回归(Cox模型)
生存者函数估计(Kaplan-Meier)
累积发生率函数估计

多变量:

缺失数据的主成分分析
旋转因子分析
MANOVA
典型相关

非参数统计:单变量和多变量核密度估计

数据集:用于示例和测试的数据集
统计:广泛的统计检验
诊断和规格检验
拟合优度和正态性检验
多元测试函数
各种其他统计检验

其他模型

Sandbox:statsmodels包含一个 sandbox 文件夹,其中包含处于开发和测试各个阶段的代码, 因此不被视为“生产就绪”。其中包括:
广义矩法(GMM)估计器
核回归
scipy.stats.distributions的各种扩展
面板数据模型
信息理论测度

什么是线性回归?

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

在回归术语中,我们将被预测的变量称为因变量(dependent variable),用y表示。把用来预测应变量值的一个或多个变量称为自变量(predictor variable/independent variable),用x表示。

简单线性回归案例

数据集说明

本文用于分析的样本数据集手动定义,有利于结果一目了然,特别容易理解。

导入需要的工具包


import statsmodels.api as sm
from statsmodels.formula.api import ols
from statsmodels.sandbox.regression.predstd import wls_prediction_std
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("darkgrid")
import pandas as pd

如果电脑上面没有安装这些包,直接下载速度过慢,可以选择在国内的网站上面下载安装。

pip install statsmodels -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install matplotlib -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install seaborn -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 

使用pandas生成数据

自定义的数据,可任意修改。注意:列名中,相当于把“a”列作为主键,让两个数据集可以关联起来。

a = pd.DataFrame([[1,2,20,4,5],
                  [2,3,21.2,34,45],
                  [3
  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Statsmodels是一个可用于统计分析和建模的Python库。它提供了多种方法和函数来进行线性回归模型的拟合和分析。其中,多元线性回归模型是其中一个非常重要的模型,由多个自变量来预测一个因变量。 多元线性回归模型的核心思想是建立多个自变量与一个因变量之间的线性关系,使用数据来拟合出这些关系的系数,并使用这些系数来进行预测。与简单线性回归只有一个自变量相比,多元线性回归更加灵活,并且能够更准确地预测因变量的值。 在Statsmodels中,对多元线性回归模型的拟合和分析主要涉及到以下几个方面: 1. 数据的准备和清洗:数据应该被整理成pandas DataFrame格式,且包括所有自变量和因变量的值。这些数据中可能存在缺失值、异常值或离群点,需要进行必要的处理。 2. 模型的定义和拟合:使用OLS函数定义多元线性回归模型,并使用拟合函数fit()将数据拟合到模型中。在实际应用中,模型的参数可能需要进行一些调整。 3. 模型的检验和评价:使用summary()方法来查看模型的统计指标和拟合的质量。我们应该检查每个自变量的系数,确定它们是否显著,以及模型是否可以解释数据中的变异性。 4. 预测和应用:使用构建的模型对新数据进行预测。预测的结果可以用于实际决策和应用中,例如预测销售、预测生产等。 总的来说,Statsmodels多元线性回归提供了一种灵活和高效的方法来进行数据建模和预测分析。在实际应用中,我们可以根据不同的需求和问题,使用多元线性回归模型来完成各种分析和预测任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值