简单线性回归:预测事物间简单关系的利器

news2024/11/26 21:55:24

文章目录

  • 🍀简介
  • 🍀什么是简单线性回归?
  • 🍀简单线性回归的应用场景
    • 使用步骤:
      • 注意事项:
  • 🍀代码演示
  • 🍀结论

🍀简介

在数据科学领域,线性回归是一种基本而强大的统计分析方法。它广泛应用于各个领域,从经济学到生物医学研究,从市场营销到城市规划,目的是建立和利用变量之间的简单关系,以便预测未来趋势或做出决策。在本文中,我们将深入探讨简单线性回归的工作原理、应用场景和使用步骤,以帮助您更好地理解和应用这一强大的分析工具。


🍀什么是简单线性回归?

简单线性回归是一种线性回归模型的基本形式,用于分析两个变量之间的关系。其中一个变量被称为“自变量”或“预测变量”,而另一个变量被称为“因变量”或“响应变量”。简单线性回归假设自变量和因变量之间存在线性关系,即以自变量的值来预测因变量的值。


🍀简单线性回归的应用场景

  • 预测销售量:根据广告投入金额预测产品销售量。
  • 理解变量之间的关系:比如研究学习时间和考试分数之间是否存在正相关关系。
  • 预测趋势:根据过去几年的数据,预测未来的市场趋势。

使用步骤:

  • 收集数据:收集包含自变量和因变量的样本数据。
  • 数据预处理:对数据进行清洗,去除异常值或缺失数据。
  • 绘制散点图:可视化数据以了解自变量和因变量之间的总体关系。
  • 拟合回归线:使用最小二乘法拟合一条直线,使其最好地拟合数据分布。
  • 解释结果:根据回归线的斜率和截距解释变量之间的关系。
  • 进行预测:利用已知自变量的值,通过回归方程预测因变量的值。

注意事项:

  • 线性回归模型可能不适用于非线性关系的数据。
  • 数据的质量对于回归分析的准确性至关重要,要确保数据的准确性一致性
  • 线性回归模型的结果需要进行合理的解释和验证。

🍀代码演示

上代码前我们可以先了解一下最小二乘法

最小二乘法是一种常用的数学方法,用于拟合数据点与数学模型之间的关系。它的目标是通过调整模型的参数,使模型预测值与实际观测值之间的误差的平方和最小化。这种方法广泛应用于统计学、机器学习、工程学和自然科学等领域,用于分析和拟合数据,寻找数据背后的模式和趋势。

最小二乘法的基本思想是,通过最小化观测值与模型预测值之间的残差平方和来找到最优的模型参数。残差是指每个观测值与对应模型预测值之间的差异。通过求解最小化残差平方和的问题,可以得到最优的模型参数。

请添加图片描述

公式的推导可以看这位大佬的文章https://blog.csdn.net/weixin_40255714/article/details/125841394

import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5])
y = np.array([1,3,2,3,5])
plt.scatter(x,y)
plt.axis([0,6,0,6])
plt.show()
#  y = a*x+b  需要计算出a和b
x_mean = np.mean(x)
y_mean = np.mean(y)
num = 0.0 # 分子
d = 0.0  #  分母
for x_i,y_i in zip(x,y):
    num += (x_i-x_mean)*(y_i-y_mean)
    d += (x_i-x_mean)**2
a = num/d
b = y_mean-a*x_mean

a和b求出来之后,我们就可以进行绘制一下,记住这里指的是找到一条直线,使得每一个点的预测值和真实值之差达到最小
在这里插入图片描述

预测就很简单了,带入求值即可
在这里插入图片描述

🍀结论

简单线性回归是一种简单而有效的分析方法,可用于预测和理解变量之间的关系。通过收集和处理数据,我们可以建立一个可靠的回归模型,从而进行预测和决策。但要注意变量之间的线性关系是否真实存在,并且合理解释结果。希望本文对您理解简单线性回归有所帮助,并且能够在您的实际问题中应用这一强大的分析工具。

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

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

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

相关文章

Failed to start LVS and VRRP High Availability Monitor.

Keepalive启动报错,Fail to start LVS and VRRP High Availability Monitor. 解决方法 : cd /etc/keepalived/cp keepalived.conf.sample keepalived.conf vim keepalived.conf //找到这个模块并修改接口名称 vrrp_instance VI_1 {state MASTERinterfac…

Jeecg-boot JDBC任意代码执行漏洞

漏洞描述 JeecgBoot是一款开源的企业级低代码平台,提供了表单、视图、流程等一键生成代码功能,目前在GitHub具有 35.5k star。 在V3版本中,由于未对JDBC连接字符串进行限制,未授权的攻击者可配置恶意的连接字符串,通…

岛屿的最大面积(力扣)递归 JAVA

给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为 1 的…

Redis的数据结构到底是一种什么样的结构?

有了上一篇NoSQL的基础,我们也都知道了Redis就是一种典型的NoSql,那我们就先简简单单的介绍一下Redis: Redis是什么? Redis(Remote Dictionary Server)是一个开源的使用ANSI C语言编写的高性能键值存储系统…

Kalman Filter VS Particle Filter

概率图模型 时间 -------->动态模型 动态模型有下面三种: 如果状态是离散的,就是我们上一节提到了Hidden Markov Model (HMM); 如果状态是连续的,如果状态之间的关系是线性的,就是Linear Dynamic System (Kalman …

【第二阶段】kotlin语言的匿名函数与具名函数

fun main() {//匿名函数val niminginfoniming("kotlin",20,{"$it"})println(niminginfo)//具名函数 理解:showResult:(String)->String):StringshowResultImpl(result:String):Stringval juminginfoniming("c ",20,::showResultI…

【jvm】类加载器的分类

目录 一、说明二、示例2.1 代码2.2 截图 一、说明 1.jvm支持两种类型的类加载器,分别是引导类加载器(bootstrap classloader)和自定义类加载器(user-defined classloader) 2.自定义类加载器一般指的是程序中由开发人员…

Python 中被忽视的核心功能

这篇文章主要介绍了一些在 Python 编程中可能被忽视的核心功能,包括默认参数、海象运算符、*args 和 **kwargs 的使用、变量交换、str 与 repr 的区别、可迭代对象的扩展解包、多个上下文管理器的使用、Python 调试器、collections.Counter 的使用、itertools 的使用…

Mysql高阶第一章 主从架构的复现

这里写目录标题 前言第一章 找到主数据库和从数据库对应的虚拟机1.1 查对应虚拟机IP1.2 rpm 查找数据库是否安装1.3 查找数据库详细配置信息 第二章 启动主从复制2.1 SHOW SLAVE STATUS\G;2.2 Slave_IO_Running: No2.3 解决方案2.3.1 进入slave中输入,停止从库同步&…

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制参数 之前搭建ossrs服务,可以查看:https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话,可以查看:https://blog.csdn.net/gloryFlo…

PHP实践:分布式场景下的Session共享解决方案实现

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…

(1)window配置微软商店中的Ubuntu,及错误解决方法

(1)首先,在微软商店中搜索“Ubuntu”,下载你喜欢的版本(此处) (2)设置适用于window的Linux子系统,跟着红色方框走 点击“确定”之后,会提示你重启电脑,按要求重启电脑即可…

【算法题解】53. 计封闭岛屿的数目

这是一道 中等难度 的题 https://leetcode.cn/problems/number-of-closed-islands/ 题目 二维矩阵 grid 由 0 0 0(土地)和 1 1 1 (水)组成。岛是由最大的 4 4 4 个方向连通的 0 0 0 组成的群,封闭岛是一个 完全 由…

使用shift关键字,写一个带二级命令的脚本(如:docker run -a -b -c中的run)

省流:shift关键字 探索思路 最近有一个小小的需求,写一个类似于docker run -a -b -c这样的脚本,这个脚本名为doline,它本身可以执行(doline -a -b -c),同时又带有几个如run、init、start这样的…

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻(K-Nearest Neighbors,简称KNN)是一种简单但常用的机器…

python编程基础与案例集锦,python编程入门经典

大家好,本文将围绕python编程基础与案例集锦展开说明,python编程入门与案例详解是一个很多人都想弄明白的事情,想搞清楚python入门程序例子需要先了解以下几个事情。 【程序1】 题目:输入一行字符,分别统计出其中英文字…

【c++】七夕快到了却还没对象?手把手教你new一个出来!

前言 本章给大家带来的是C内存管理。在C语言阶段,我们经常使用malloc,calloc,realloc,free进行内存管理。但是,C语言的内存管理存在很多缺陷,会对程序的稳定性和安全性造成影响。 不过,C语言的…

cubemx hal stm32 舵机 可减速 任意位置停止 驱动代码

CubeMX配置 对于 STM32 F407VE 这里的84是来自APB1那路2倍频得到: 代码部分 两个舵机都是180度的 servo.c #include "servo.h" #include "tim.h" #include "stdio.h"__IO uint32_t g_SteerUWT[2] {0}; uint16_t g_SteerDeg[…

开发一个RISC-V上的操作系统(七)—— 硬件定时器(Hardware Timer)

目录 往期文章传送门 一、硬件定时器 硬件实现 软件实现 二、上板测试 往期文章传送门 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二)—— 系统引导…

Monkey测试真的靠谱吗?

Monkey测试,顾名思义,就是模拟一只猴子在键盘上乱敲,从而达到测试被测系统的稳定性。Monkey测试,是Android自动化测试的一种手段,Monkey测试本身非常简单,Android SDK 工具支持adb Shell命令,实…