Python数学建模库StatsModels统计回归简介初识

Python数学建模库StatsModels统计回归简介初识

StatsModels是Python数据分析常用的库之一,它是用于拟合和分析各种统计模型的库。其中包括线性回归、广义线性模型、时间序列分析等。本文将简单介绍StatsModels库中的统计回归分析。

一、线性回归

线性回归是一种用于探索两种变量之间关系的统计学方法。其中一个变量被看做是自变量,另一个变量则被看做是因变量。线性回归对这两种变量进行拟合,通过最小化误差来预测因变量的值。StatsModels库中的线性回归模型使用OLS模块实现。

下面是一个简单的线性回归示例:

import statsmodels.api as sm
import numpy as np
import pandas as pd

# 构造数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])

# 添加常数项
x = sm.add_constant(x)

# 构建模型
model = sm.OLS(y, x)

# 拟合数据
results = model.fit()

# 打印结果
print(results.summary())

此代码生成以下摘要:

OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       1.000
Model:                            OLS   Adj. R-squared:                  1.000
Method:                 Least Squares   F-statistic:                 1.026e+32
Date:                Fri, 03 Sep 2021   Prob (F-statistic):               0.00
Time:                        09:00:00   Log-Likelihood:                 143.71
No. Observations:                   5   AIC:                            -283.4
Df Residuals:                       3   BIC:                            -283.8
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const               2.0000    2.9e-15   6.88e+14      0.000       2.000       2.000
x1                  2.0000   1.98e-16   3.21e+15      0.000       2.000       2.000
==============================================================================
Omnibus:                          nan   Durbin-Watson:                   0.022
Prob(Omnibus):                    nan   Jarque-Bera (JB):                0.488
Skew:                          -0.745   Prob(JB):                        0.784
Kurtosis:                       2.409   Cond. No.                         6.00
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

在上述示例中,我们首先生成x和y数组,并将x添加一个常数项。然后,我们使用OLS模块构建一个线性回归模型,并使用拟合方法来拟合数据。最后,我们通过打印summary()方法的结果,查看系数和其他统计信息。在这个例子中,线性拟合的结果显示斜率是2,常数项是2。

二、Logistic 回归

Logistic回归是一种用于处理分类问题的统计学方法。在Logistic回归中,因变量是二元的,典型的情况包括“是”或“否”,“真”或“假”,“成功”或“失败”等。自变量可以是连续或分类变量,通过最大化似然函数来拟合模型。StatsModels库中的Logistic回归模型采用GLM模块实现。

下面是一个简单的Logistic回归示例:

import statsmodels.api as sm
import pandas as pd
import numpy as np

# 构造数据
df = pd.DataFrame({'y': [1, 0, 1, 0, 1, 0, 1, 0], 'x1': [1, 2, 3, 4, 5, 6, 7, 8], 'x2': [5, 6, 7, 8, 9, 10, 11, 12]})

# 训练模型
model = sm.GLM(df['y'], df[['x1', 'x2']], family=sm.families.Binomial())

# 拟合模型
results = model.fit()

# 打印结果
print(results.summary())

此代码生成以下摘要:

                 Generalized Linear Model Regression Results                  
==============================================================================
Dep. Variable:                      y   No. Observations:                    8
Model:                            GLM   Df Residuals:                        6
Model Family:                Binomial   Df Model:                            1
Link Function:                  logit   Scale:                          1.0000
Method:                          IRLS   Log-Likelihood:                -3.2203
Date:                Fri, 03 Sep 2021   Deviance:                       6.4406
Time:                        09:00:00   Pearson chi2:                     8.00
No. Iterations:                     5                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
x1             0.0499      0.333      0.150      0.881      -0.603       0.703
x2            -0.5214      0.436     -1.194      0.233      -1.378       0.335
==============================================================================

在上述示例中,我们首先生成一个包含因变量和自变量的数据框df,并使用GLM模块训练模型。最后,我们使用拟合方法进行拟合,并通过打印summary()方法的结果,查看系数和其他统计信息。

通过上述两个示例,我们可以看到StatsModels库中线性回归和Logistic回归的简单应用。这些模型的应用有助于通过统计学方法分析和预测数据。针对不同的问题,还有需选择使用合适的模型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python数学建模库StatsModels统计回归简介初识 - Python技术站

(1)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • Python基于内置库pytesseract实现图片验证码识别功能

    Python 基于内置库 pytesseract 实现图片验证码识别功能 在 Python 中,可以使用内置库 pytesseract 实现图片验证码识别功能。以下是 Python 基于内置库 pytesseract 实现图片验证码识别功能的方法。 1. 安装 pytesseract 首先,我们需要安装 pytesseract 库。可以使用 pip 命令进行…

    python 2023年5月15日
    00
  • Python双端队列实现回文检测

    下面是关于”Python双端队列实现回文检测”的完整攻略: 一、什么是双端队列 双端队列(deque)是一种数据结构,具有队列和栈的特性。双端队列允许我们从队列的两端都可以进队和出队。Python通过collections模块提供了deque双端队列的实现。 根据文本的前后顺序比较其是否为回文,可以采用双端队列的特点,从文本的前后两端同时进行比较,即可快速判…

    python 2023年6月3日
    00
  • 你知道怎么从Python角度学习Java基础

    从Python角度学习Java基础 Java和Python是两种不同的编程语言,它们在语法和编程范式上有很大的差异。如果您已经掌握了Python的基础知识,么从Python角度学习Java基础将会更加容易。本文将为您提供一个完整攻略,包括Java的基本语法、面对象编程和异常处理机制,并提供两个示例说明。 1 了解Java的基本语法 Java和Python在语…

    python 2023年5月14日
    00
  • Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法

    Python的开发环境中,包管理是非常重要的一环。特别是当你开发多个项目、或者要与其他开发者共享项目代码时,需要管理好项目所依赖的第三方包。本文将介绍Python虚拟环境Virtualenv以及Pipreqs工具的使用方法,帮助你更好地管理Python项目依赖包。 虚拟环境Virtualenv Virtualenv可以创建一份独立的Python环境,与宿主机…

    python 2023年5月14日
    00
  • Pandas sample随机抽样的实现

    下面我为您详细讲解“Pandas sample随机抽样的实现”的完整攻略。 什么是Pandas sample随机抽样? 在数据分析领域,经常需要对数据集进行抽样分析,Pandas作为数据分析库,提供了sample方法来实现对数据集的抽样操作。Pandas sample方法可以从DataFrame中获取指定样本数量的数据,同时也支持获取指定比例的数据。 sam…

    python 2023年6月3日
    00
  • python+pytest接口自动化之日志管理模块loguru简介

    欢迎来到本篇文章,本文主要介绍Python+pytest接口自动化测试中的一个强大的日志管理模块——loguru。 什么是loguru? loguru是一款Python的日志管理模块,具有以下特点: 易于使用,方便快捷地记录Python日志; 提供多种配置方式,满足不同用户的需求; 具有强大的过滤和格式化功能; 支持多进程、多线程、异步I/O等场景下的日志记…

    python 2023年6月6日
    00
  • Python实现从概率分布中随机采样

    接下来我将会详细讲解“Python实现从概率分布中随机采样”的攻略。 1. 什么是概率分布 在详细介绍Python实现从概率分布中随机采样之前,首先需要知道什么是概率分布。 概率分布是指随机变量所有可能取值与相应概率的对应关系。 在Python中,我们可以通过Scipy库中的stats模块来实现概率分布的计算和操作。 2. 从概率分布中随机采样的方法 随机采…

    python 2023年6月3日
    00
  • python爬虫 线程池创建并获取文件代码实例

    下面我会详细讲解Python爬虫中线程池的创建以及如何使用线程池获取文件。首先,我们需要了解Python中线程池的基本概念和实现方式。 线程池的基本概念和实现方式 线程池是一种线程管理机制,它可以在应用程序启动时预先创建一定数量的线程,并维护一个等待执行任务的队列。当有新的任务需要执行时,线程池会从队列中获取任务并分配给空闲的线程执行,以此来达到提高应用程序…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部