机器学习 -Statsmodels

news2025/1/18 19:08:11

机器学习记录

Statsmodels

用于探索数据, 估计模型, 并运行统计检验.

conda install -y statsmodels

线性回归

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
import statsmodels.datasets.utils as du
import seaborn as sns

%matplotlib inline
%reload_ext autoreload
%autoreload 2

print(sm.__version__)
0.13.5
# 查看 datasets
# https://github.com/vincentarelbundock/Rdatasets/blob/master/datasets.csv
# https://vincentarelbundock.github.io/Rdatasets/articles/data.html
beauty = sm.datasets.get_rdataset('TeachingRatings', 'AER')
# print(beauty.__doc__)
beauty.data.head()
minorityagegendercreditsbeautyevaldivisionnativetenurestudentsallstudentsprof
0yes36femalemore0.2899164.3upperyesyes24431
1no59malemore-0.7377324.5upperyesyes17202
2no51malemore-0.5719843.7upperyesyes55553
3no40femalemore-0.6779634.3upperyesyes40464
4no31femalemore1.5097944.4upperyesyes42485

OLS是普通最小二乘法(Ordinary Least Squares)的缩写,它是一种线性回归模型。

在statsmodels库中,可以使用OLS()方法进行线性回归,并通过.fit()方法进行模型拟合。

然后,可以调用.summary()方法输出回归结果的摘要,它包含以下主要字段:

  • Model: 模型概述,包括模型公式、方法、样本量等
  • Dep. Variable: 依变量Y
  • Indep. Variables: 自变量X
  • R-squared: 确定系数R方,衡量模型的解释能力,范围0-1,值越高表示模型解释能力越强
  • Adj. R-squared: 调整后的R方,对样本量的影响进行校正
  • F-statistic: F统计量,用于检验整个回归模型是否显著
  • Prob (F-statistic): F统计量的P值,小于显著性水平(如0.05)则拒绝原假设,认为模型是显著的
  • Log-Likelihood: 对数似然函数值
  • AIC: 赤池信息量,用于 model selection
  • BIC: 贝叶斯信息量,与AIC一起用于 model selection

对于每个自变量:

  • Coef: 回归系数,表示该变量对依变量Y的影响程度
  • Std.Err: 回归系数的标准误
  • t: t统计量,用于检验该自变量在模型中是否显著
  • P>|t|: t统计量的P值,小于显著性水平则认为该自变量显著影响Y
  • Conf. Int.: 该回归系数的置信区间

.summary()方法输出的结果包含了线性回归模型中最为关键的诊断统计量和 chaque 参数的统计学检验结果。通过这些结果,可以全面判断模型的质量和各自变量的影响。

y = beauty.data['beauty']
x1 = beauty.data['eval']
plt.scatter(x1, y)
plt.xlabel('Evaluation')
plt.ylabel('Beauty')

x = sm.add_constant(x1)
result = sm.OLS(y, x).fit()

print(result.summary())

yhat = 0.262 * x1 - 1.0743
fig = plt.plot(x1, yhat, lw=4, c='orange', label='regression')
plt.legend()

plt.show()
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                 beauty   R-squared:                       0.036
Model:                            OLS   Adj. R-squared:                  0.034
Method:                 Least Squares   F-statistic:                     17.08
Date:                Thu, 27 Apr 2023   Prob (F-statistic):           4.25e-05
Time:                        15:25:50   Log-Likelihood:                -538.11
No. Observations:                 463   AIC:                             1080.
Df Residuals:                     461   BIC:                             1088.
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -1.0743      0.262     -4.094      0.000      -1.590      -0.559
eval           0.2687      0.065      4.133      0.000       0.141       0.396
==============================================================================
Omnibus:                       25.836   Durbin-Watson:                   0.962
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               24.678
Skew:                           0.512   Prob(JB):                     4.38e-06
Kurtosis:                       2.518   Cond. No.                         31.2
==============================================================================

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

请添加图片描述

sns.pairplot(beauty.data)

plt.show()

请添加图片描述

plt.figure(figsize=(8, 4))
sns.regplot(x='eval', y='beauty', data=beauty.data)

plt.show()

请添加图片描述

tips = sns.load_dataset('tips')
tips.head()
total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.50MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4
tips.columns
Index(['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'], dtype='object')
y = tips['total_bill']
x1 = tips['tip']

x = sm.add_constant(x1)

result = sm.OLS(y, x).fit()
result.summary()
OLS Regression Results
Dep. Variable:total_bill R-squared: 0.457
Model:OLS Adj. R-squared: 0.454
Method:Least Squares F-statistic: 203.4
Date:Thu, 27 Apr 2023 Prob (F-statistic):6.69e-34
Time:15:25:58 Log-Likelihood: -804.77
No. Observations: 244 AIC: 1614.
Df Residuals: 242 BIC: 1621.
Df Model: 1
Covariance Type:nonrobust
coefstd errtP>|t|[0.0250.975]
const 6.7503 1.006 6.707 0.000 4.768 8.733
tip 4.3477 0.305 14.260 0.000 3.747 4.948
Omnibus:58.831 Durbin-Watson: 2.094
Prob(Omnibus): 0.000 Jarque-Bera (JB): 120.799
Skew: 1.185 Prob(JB): 5.87e-27
Kurtosis: 5.502 Cond. No. 8.50


Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
plt.figure(figsize=(8, 4))

sns.regplot(x='total_bill', y='tip', data=tips)

plt.show()

请添加图片描述














本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/470350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构【二】:霍夫曼编码

霍夫曼编码(Huffman Coding)是可变长编码(VLC)的一种。本质上使用变长编码表对源符号进行编码,通过评估源符号出现概率的方法进行分类,将出现几率较高的源字符使用较短的编码,出现几率较低的源字…

Hive优化补充

目录 一、表设计优化 1.通过设计分区表,增加动态分区,查询时避免全表扫描 2.设计分桶表:适用于大表join大表的情况 最后,两张大表进行join转为两张分桶表进行join: 二、文件存储 1.文件格式-概述 2.文件格式——…

学系统集成项目管理工程师(中项)系列13b_人力资源管理(下)

1. 项目团队建设 1.1. 塔克曼(Tuckman)阶梯理论 1.2. 理论基础 1.2.1. 激励理论 1.2.1.1. 马斯洛需要层次理论 1.2.1.1.1. 生理需要 1.2.1.1.2. 安全需要 1.2.1.1.3. 社会交往的需要 1.2.1.1.4. 自尊的需要 1.2.1.1.5. 自我实现的需要 1.2.1.2. 赫茨伯格的双因素理论…

Leetcode力扣秋招刷题路-0802

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 802. 找到最终的安全状态 有一个有 n 个节点的有向图,节点按 0 到 n - 1 编号。图由一个 索引从 0 开始 的 2D 整数数组 graph表示, graph[i]是与节点 i 相邻的节…

Git HEAD及detached head

背景:最近在使用git checkout重置HEAD指向,偶尔会出现Detached HEAD提示,于是想探究一下具体的原理及过程,遂写下了这篇文章。一般checkout用于切换分支和检出历史的某个节点,或恢复工作区的文件,这三个功能…

OpenHarmony JS Demo开发讲解

项目结构 打开entry→src→main→js,工程的开发目录如图所示 其中, i18n文件夹:用于存放配置不同语言场景的资源,比如应用文本词条,图片路径等资源。en-US.json文件定义了在英文模式下页面显示的变量内容&#xff0c…

Java 泛型为什么设计成是可以擦除的

Java 泛型是 Java 5 引入的一种类型安全的编程机制,它允许在编译时指定泛型类型参数,从而提高代码的类型安全性和可读性。然而,Java 泛型的实现方式是通过类型擦除来实现的,这也引发了一些争议。本文将介绍 Java 泛型为什么设计成…

2023年某科技公司前端开发初级岗的面试笔试真题(含选择题答案、问答题解析、机试题源码)

📚关于该专栏: 该专栏的发布内容是前端面试中笔试部分真题、答卷类、机试等等的题目,题目类型包括逻辑题、算法题、选择题、问答题等等,除了内容的分享,还有解析和答案。真实来自某些互联网公司,坐标广东广州。 🔥🔥🔥 持 续 更 新 🔥🔥🔥 😉专栏博主: 黛…

HCIP-7.1交换机ARP、VLAN之间的三层通信技术学习

交换机ARP、VLAN之间的三层通信技术学习 1、ARP1.1、 地址解析过程1.2、ARP报文格式1.3、ARP表项1.4、免费ARP1.5、 VLAN间ARP代理1.5.1、解决同网段,不同广播域内主机互通问题;1.5.2、解决同网段,不同VLAN之间主机互通问题。1.5.3、解决同网…

Ignore insecure directories and continue [y] or abort compinit [n]?

问题: 在Mac终端中使用Zsh作为默认shell时,有时会弹出以下提示信息: Ignore insecure directories and continue [y] or abort compinit [n]? 这个提示出现的原因是因为Zsh在加载时会检查所有的目录是否安全,并拒绝加载不安全的…

【LeetCode: 62. 不同路径 | 暴力递归=>记忆化搜索=>动态规划 】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

卡尔曼滤波器简介——概述

关于卡尔曼滤波器 大多数现代系统都有许多传感器,可以根据一系列测量来估计隐藏(未知)状态。例如,GPS接收器提供位置和速度估计,其中位置和速度是隐藏状态,卫星信号到达的差分时间是测量值。 跟踪和控制系统…

ChatGPT的进化版?AutoGPT怎么用

AutoGPT是什么 首选给大家介绍,ChatGPT与AutoGPT的区别 目前AutoGPT被称为最接近AGI的人工智能,它是ChatGPT的进化版? “ChatGPT” 只能提供2021年9月之前的信息,所以你问它告诉我今天的天气,它回答不了 “AutoGPT” …

AutoGPT不靠谱,微软推出升级版!可编辑自主规划过程

夕小瑶科技说 原创 作者 | iven 火遍全网的AutoGPT[1]在Github收藏量突破十万。这种自我规划、自我执行的智能体首次关注人工智能模型内部的自我调整与优化。 但是有不少网友发现,AutoGPT的表现不稳定,死循环是最常见的现象。此外,AutoGPT执…

输入指令为±10V或4~20mA型伺服阀控制器

工作电压 19~35 VDC(常规24VDC) 最大功率消耗 <25VA 空载电流 ≤100mA(24V) 差分信号输入 0~10 V,输入阻抗≥100KΩ 4~20 mA,输入阻抗100Ω (出厂前需指定,现场不可…

免费的ERP系统哪个好?这款让管理更高效

阅读本文你将了解:ERP是什么?解决什么问题?ERP选型的参考维度?零代码ERP系统解决哪些场景问题? 题目提到“免费”,其实很难有软件可以真正做到。 商业化市场决定了没有一家厂商可以不落俗套。因而我们要探…

[架构之路-177]-《软考-系统分析师》-17-嵌入式系统分析与设计 -2- 系统分析与设计、低功耗设计

目录 1 7 . 4 嵌 入 式 系 统 开 发 17.4.1 开发平台 1 . 交叉开发环境 2 . 交叉编译环境 17. 2 开发流程 1. 过程模型 2 . 分析与设计方法 17.4.3 软硬件协同设计 1 . 软 硬 件 协 同 设 计 方 法 2 . 协 同 设 计 工 具 17.4.4 系统分析与设计 1 . 需求分析 2 .…

CI/CD: GitLab Runner安装注册配置管理

点击上方蓝字⭐️关注“DevOps云学堂”,接收最新技术实践 今天是「DevOps云学堂」与你共同进步的第 21 天 本文是《GitLabCI实践》教程部分内容 GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,G…

计算机网络学习10(ARP协议详解)

ARP 协议,可以说是在协议栈中属于一个偏底层的、非常重要的、又非常简单的通信协议。 开始阅读这篇文章之前,你可以先看看下面几个问题: ARP 协议在协议栈中的位置? ARP 协议在协议栈中的位置非常重要,在理解了它的工…

Linux 内存 pt.1

哈喽大家好,我是咸鱼 今天我们来学习一下 Linux 操作系统核心之一:内存 跟 CPU 一样,内存也是操作系统最核心的功能之一,内存主要用来存储系统和程序的指令、数据、缓存等 关于内存的学习,我会尽量以通俗易懂的方式…