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计算一个给定时间点前一个月和后一个月第一天的方法

    下面是关于“Python计算一个给定时间点前一个月和后一个月第一天的方法”的攻略,步骤如下: 1.获取给定时间点 首先,我们需要获取给定的时间点。在Python中,常用的时间处理模块是datetime,可以通过以下代码获取当前时间: import datetime now = datetime.datetime.now() # 获取当前时间 如果有一个字符串…

    python 2023年6月2日
    00
  • python 类相关概念理解

    下面是“Python类相关概念理解”的完整攻略: 一、Python类的基本概念 1.1 类的定义 在Python中使用class关键字来定义一个类,如下所示: class MyClass: pass 类名通常采用驼峰命名法。在类定义中使用的pass语句意味着这个类是空的,不包含任何属性和方法。 1.2 类的对象 当类被定义并创建后,我们就可以通过实例化一个对…

    python 2023年5月13日
    00
  • python实现数独游戏 java简单实现数独游戏

    如果你想实现数独游戏,可以选择通过Python或者Java来完成。下面,我们就来详细讲解一下如何实现。 使用Python实现数独游戏 步骤1:设计数据结构 在实现数独游戏之前,我们需要先设计数据结构来表示数独谜题。在Python中,我们可以使用二维数组来表示一个9*9的数独格子。 sudoku = [ [3, 0, 6, 5, 0, 8, 4, 0, 0],…

    python 2023年6月3日
    00
  • Python解决多进程间访问效率低的方法总结

    我为你详细讲解“Python解决多进程间访问效率低的方法总结”的完整攻略。 什么是多进程间访问效率低的问题? 在使用Python进行多进程编程时,我们经常会遇到多个进程之间需要共享数据的情况。但是,多进程之间的数据共享涉及到了进程之间的通信问题,进程通信又与操作系统的调度和内存管理密切相关。因此,多进程间数据共享往往会导致访问效率低下,程序性能受到很大影响。…

    python 2023年5月19日
    00
  • 5款Python程序员高频使用开发工具推荐

    5款Python程序员高频使用开发工具推荐 本文将为大家介绍5款Python程序员高频使用的开发工具,这些工具能够极大地提高程序员的工作效率。 1. PyCharm PyCharm是一个常用的Python集成开发环境(IDE)。它由JetBrains开发,提供了代码提醒、调试、版本控制等多种功能。此外,PyCharm还支持多种框架和库,如Django、Fla…

    python 2023年5月31日
    00
  • 对Python中type打开文件的方式介绍

    当使用Python进行文件操作时,我们通常使用内置的open()函数来打开文件。在使用open()函数时,需要传递两个参数给它,第一个是文件路径和名称,第二个则是文件的打开模式(只读、写入、追加等)。 其中,Python中的type函数可以用来查看变量或对象的类型。当使用open()函数打开文件时,返回对象的类型为_IOTextWrapper(Python …

    python 2023年5月31日
    00
  • Stem 作为 python tor 客户端 – 卡在加载描述符上

    【问题标题】:Stem as python tor client – stuck on loading descriptorsStem 作为 python tor 客户端 – 卡在加载描述符上 【发布时间】:2023-04-02 18:26:01 【问题描述】: 我正在尝试使用 python stem 连接到 tor,同时尝试连接(使用修改后的示例)它只是无…

    Python开发 2023年4月8日
    00
  • Python3爬虫中Selenium的用法详解

    Python3爬虫中Selenium的用法详解 Selenium是一个自动化测试工具,可以模拟用户在浏览器中的操作,如点击、输入、滚动等。在Python3爬虫中,Selenium可以用于模拟浏览器行为,实现动态网页的爬取。本文将为您详细讲解Python3爬虫中Selenium的用法,包括Selenium的安装、使用方法、常用API等。过程中提供两个示例说明。…

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