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

yizhihongxing

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利用PyAutoGUI模块实现控制鼠标键盘

    Python利用PyAutoGUI模块实现控制鼠标键盘 简介 PyAutoGUI是一个可以让Python实现自动化GUI控制的模块。它可以通过鼠标、键盘输入和屏幕截图模拟对应的电脑操作,例如:输入键盘、移动鼠标、截图等。它支持Windows、Linux、OS X等多个操作系统。 安装 使用pip命令进行安装: pip install pyautogui 功能…

    python 2023年5月19日
    00
  • Python读写unicode文件的方法

    下面是Python读写unicode文件的方法的完整攻略。 一、关于Unicode 在讲解Python读写unicode文件的方法之前,我们先来了解一下Unicode。 Unicode是一种字符集,是计算机内部存储字符的一种方式。Unicode为每个字符定义了一个唯一的整数,换句话说就是为每个字符提供了一个数字编号。这个编号通常是16位的,被称为Unicod…

    python 2023年5月20日
    00
  • 详解Django的MVT设计模式

    详解Django的MVT设计模式 Django是一个基于Python的Web框架,采用了MVT(Model-View-Template)设计模式。MVT是一种基于MVC(Model-View-Controller)设计模式的变体,它将控制器(Controller)分解为模板(Template)和视图(View),以更好地实现业务逻辑和数据处理。以下是Djan…

    python 2023年5月14日
    00
  • python PyVCF文件处理VCF文件格式实例详解

    标题:Python PyVCF文件处理VCF文件格式实例详解 简介 本文主要介绍使用 Python 的 PyVCF 库处理 VCF 文件格式的方法,PyVCF 是一个专门处理 VCF 文件的 Python 库,支持访问和解析 VCF 文件的数据,本文将介绍如何通过这个库来读取、遍历、操作 VCF 文件。 安装 PyVCF 安装 PyVCF 很简单,只需使用 …

    python 2023年6月3日
    00
  • Python的 元组(Tuple)详解

    Python的元组(Tuple)详解 什么是元组 元组是Python中的一个内置数据类型,类似于列表(list),但是元组一旦创建就不能进行修改。它使用小括号()进行表示,元素之间使用逗号(,)进行分隔。 下面是一个元组的示例: tup = (1, 2, 3, 4, 5) 元组的特点 和列表相比,元组具有以下特点: 元组一旦创建就不能进行修改,即不能添加、删…

    python 2023年5月14日
    00
  • pybind11: C++ 工程提供 Python 接口的实例代码

    下面我将详细讲解如何使用 pybind11 提供 Python 接口的实例代码。 1. 简介 pybind11 是一个用于构建 C++ 中 Python 扩展的库,可以轻松地将 C++ 中的类、函数等封装为 Python 中的模块,方便在 Python 中使用 C++ 的功能。 本文将使用一个简单的示例来展示如何使用 pybind11。 2. 安装 pybi…

    python 2023年6月6日
    00
  • python 实现目录复制的三种小结

    Python 实现目录复制的三种小结 在 Python 中,实现目录复制有很多种方法,本文将介绍三种常用的方法。 方法一:使用 shutil 模块 最简单的方法就是使用 Python 自带的 shutil 模块进行目录复制。这个模块提供了很多实用的函数,其中包括 copytree() 函数可以用来实现目录复制。 示例1 import shutil # 定义源…

    python 2023年6月3日
    00
  • Python保存MongoDB上的文件到本地的方法

    下面是Python保存MongoDB上的文件到本地的方法的完整实例教程,包含两个示例: 环境配置 首先需要安装pymongo和gridfs库,可以使用pip进行安装: pip install pymongo pip install gridfs 示例1:保存一张图片文件 这个示例展示了如何从MongoDB中读取一个图片文件,并将其保存到本地。首先,假设Mon…

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