matlab中用polyfit、regress、nlinfit等进行详细的回归分析

article/2025/9/9 2:21:04

目录

  • 1.说明
  • 2.回归的介绍
    • 2-1.前面两篇所发现的一些问题
      • 2-1-1.回归和拟合是什么关系?
      • 2-1-2.回归到底是做预测还是用来去脏数据?
  • 3.三个函数的核心:最小二乘法
    • 3-1.介绍
    • 3-2.matlab代码
  • 4.函数polyfit(线性)
  • 5.函数regress(线性)
    • 5-1.输出b,bint,r,rint,stats
    • 5-2.应用
      • 5.2-1.一元线性回归
      • 5.2-1.多元线性回归
  • 6.函数nlinfit(非线性)
    • 6-1.引入
    • 6-2.应用
      • 6-2-1.内联函数inline
      • 6-2-2.初始参数的设定方法
      • 6-2-3.输出b、r、j

1.说明

  1. 该学习笔记仅供个人学习使用,不代表任何官方指导或意见。
  2. 该学习笔记为个人原创,转载请征得博主同意,或声明原文链接。
  3. 继我上一次写的学习笔记数据探索、数据清洗学习笔记与用matlab代码进行数据探索、数据清洗学习笔记,回归的部分
  4. 有需要其他资料或有其他问题可私信或者加qq2356081476,这不是我的义务但也欢迎各位朋友与我讨论相关问题,共同进步。
  5. 错字,语法,排版等问题请见谅。
  6. 版权问题我不太懂,有侵权等问题请联系我。
  7. 好多不懂的代码一定要自己跟着试,看着资料一步一步试。我在学习的时候也是很多不懂的,拿着matlab r2018b一起试着会了的。

2.回归的介绍

对小白说,根据点(数据)的趋势,用线表示出来这个趋势。
专业点说,数据拟合。

这条线是什么样子的,直线的?曲线的?

  • 直线的我们叫线性回归。
  • 曲线的我们叫非线性回归,或者一个更通俗的名字曲线回归。

还有其他的没有说明,这篇先会介绍这两个并介绍matlab的代码。

2-1.前面两篇所发现的一些问题

2-1-1.回归和拟合是什么关系?

就我所查,拟合包括回归,插值,逼近。后两个不介绍了,关系就是拟合有多种方法,其中包括回归。所以有老板叫你做数据拟合去的时候,你要知道,就是要你去回归,要你去求出数据的趋势。

2-1-2.回归到底是做预测还是用来去脏数据?

没查到资料详细介绍这个问题
与一些其他资料所冲突的是我个人意见,不能预测,只能用来去脏数据。他们说可以预测,我说不能,为什么?最后所求得的线拟合数据拟合得很好,但不是数据的那一段线可能会有很严重的偏差。看一个图。在这里插入图片描述
这个是我用一元十次多项式拟合数据(蓝色的是数据点),在没有数据点的两边极速上升,非常不符合数据缓慢上升的趋势。

3.三个函数的核心:最小二乘法

3-1.介绍

先把公式写出来再说怎么来的:
D = ∑ i = 1 n d i 2 = ∑ i = 1 n ( y i − y ^ i ) 2 D = \sum^n_{i = 1}d_i^2=\sum^n_{i=1}(y_i-\hat y_i)^2 D=i=1ndi2=i=1n(yiy^i)2
其中
y i y_i yi是数据点的y值(在横坐标 x i x_i xi处的纵坐标值)
y ^ i \hat y_i y^i是我们拟合的线在横坐标 x i x_i xi处的纵坐标值。
当D最小时,求得的 y ^ i \hat y_i y^i就是我们要的。

怎么求:
并且因为有平方,所以有最小值。在数学上求导为零的地方在实际意义上是那个最小值点,所以求导,解出来。

通俗理解还可以参考下面两篇个人觉得很好的文章:
https://blog.csdn.net/ReCclay/article/details/82914109
https://blog.csdn.net/alw_123/article/details/82193535

3-2.matlab代码

代码中会用到正规方程解,及:


http://chatgpt.dhexx.cn/article/YuV48R2n.shtml

相关文章

曲线拟和函数lsqcurvefit nlinfit

转载自:http://panda0411.com/2011/08/29/curve-fit-and-function-lsqcurvefitnlinfit/ 琢磨了好久matlab自带的曲线拟和工具箱, 发现这货只能解决从离散数据得到各种类型的拟和效果, 但是反之貌似没法实现, google一下有这两个函数可以用:lsqcurvefit和nlinfit ls…

Matlab学习手记——非线性数据拟合:nlinfit和lsqcurvefit

目的:通过一个实例了解Matlab的数据拟合函数nlinfit和lsqcurvefit的使用。 结果图 具体数值 p 0.3000 50.0000 0.4000 200.0000 0.3000 800.0000 p1 0.3267 48.3589 0.4030 226.6525 0.2838 809.6680 p2 0.3267 48.3646 0.4031 226.735…

MATLAB多元非线性回归nlinfit拟合圆拟合球拟合函数

先上实验效果,你觉得有帮助可以继续阅读。代码解析在B站有上传视频(用户昵称同名),代码也有详细备注。 拟合圆和球面: 拟合多元非线性函数:y p1*x1p2*x1^2p3*x2p4*x2^2exp(-p5*x3)的拟合结果:…

MATLAB 非线性隐函数拟合采坑记录(使用 fsolve solve nlinfit lsqcurvefit函数)

MATLAB 非线性隐函数拟合采坑记录(使用 fsolve solve nlinfit lsqcurvefit函数) 问题描述解决思路错误示范1代码思路原因解释模型更正更正模型1更正模型2 错误示范2代码思路原因解释模型更正更正模型1更正模型2 总结 问题描述 MATLAB的 nlinfit 和 lsqc…

Matlab多元非线性函数拟合

看了多篇文章,觉得没有一篇比较全,且可以参照的多元非线性函数拟合,看了多篇文章后总结以下内容,主要以示例给出,希望能帮助到大家快速上手。 1.需要用到的函数语法 beta nlinfit(X, Y, modelfun, beta0) X为你的自…

MATLAB中用nlinfit做多元非线性拟合(回归)

MATLAB中有一个多元非线性拟合的功能是nlinfit 基本语法是: beta nlinfit(X,Y,modelfun,beta0) 式子左边的beta可以是一个向量,向量的元素就是要回归的模型中的参数。 式子右边,modelfun是要回归的函数形式。X是函数的自变量数据&#xff1b…

使用nlinfit函数进行拟合时出现Error using nlinfit>checkFunVals (line 611)

在使用nlinfit函数进行拟合时出错,内容如下: The function you provided as the MODELFUN input has returned Inf or NaN values.从第一行可以看出,由于赋予的初始值导致了函数生成了NaN(无解),所以整个回…

【数学建模】多元非线性回归nlinfit(Matlab代码实现)

目录 1 基本语法 2 算例及Matlab代码实现 2.1 算例 2.2 数据 2.3 Matlab代码实现 1 基本语法 2 算例及Matlab代码实现 2.1 算例 熔喷非织造材料是口罩生产的重要原材料,具有很好的过滤性能,其生产工艺简单、成本低、质量轻等特点,受到国…

Matlab 使用nlinfit 函数进行多元非线性回归,并且绘制曲线拟合的误差区间

Matlab 使用nlinfit 函数进行多元非线性回归,并且绘制曲线拟合的误差区间 一、前言二、nlinfit函数使用1、函数语法2、拟合示例: 三、误差阴影绘制四、整体源码五、思考参考博客 一、前言 这个也是最近我接到的一个小项目里的内容: 有一组数…

利用nlinfit函数实现数据非线性拟合

所谓“拟合”,指的是在已有一组实验数据的前提下,研究这组数据有怎样的函数关系——最终结果是从这一组看似漫无规律的数据点中“找出”能用数学表达式表示的规律。 用数学语言描述的拟合定义如下: 一个典型的数据拟合过程包括以下几个步骤&…

Matlab非线性拟合函数——nlinfit

我们平时最常用的非线性拟合函数还是多项式拟合,有一天学弟突然问了我nlinfit 这个函数,然后直接查询matlab官方文档,原来非线性函数还可以用这个函数,下面来看看matlab官方文档的说明: 英文?没关系,下面看一下中文用法: beta = nlinfit(X, Y, modelfun, beta0) beta:…

[MATLAB]非线性回归--自配函数(nlinfit)

当谈到非线性回归模型的时候,同学们应该紧密的将线性回归紧密结合在一起,因为非线性回归很容易过拟合。那我们从一个案例谈一下非线性 拿到题目看到一个变量x一个y,非线性问题步骤应该是这样子的: 画出散点图根据散点图确定须配…

dozer使用: list对象mapping 配置

记录dozer的使用,复杂类型配置。 文档:https://dozermapper.github.io/user-guide.pdf 参考地址:https://github.com/klvnnsrikanth/DozerMappingExample.git Demo 的目录结构: 不是集合的普通映射方式 Source 类: Destinatio…

java dozer map转对象_对象转换利器之Dozer

在Java的世界中,经常会涉及到需要在2个对象中进行转换,比如说: 调用SOAP Web服务,需要把自己的Domain对象转换为Soap服务的Jaxb对象请求, 在分层级SOA架构中,2个层级之间Domain对象的转换, 在分…

SpringBoot2.x 集成 Dozer

Dozer是Java Bean到Java Bean的映射器,它以递归的方式将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。它支持简单属性映射,复杂类型映射,双向映射,隐式显式映射,以及递归映射…

java dozer 官网,Dozer数据对象转换神器

首先,为什么要进行数据转换? 在一个分层的体系结构中,经常会使用DTO、PO、VO等封装数据,封装数据到特定的数据对象中,然而在很多情况下,某层内部的数据是不允许传递到其它层,不允许对外暴露的&a…

SpringBoot 整合 Dozer 映射框架

SpringBoot 整合 Dozer 映射框架 1. Dozer 介绍2. 为什么要使用映射框架 Dozer3. Dozer 映射框架的使用 1. Dozer 介绍 Dozer 是一个 Java Bean 到 Java Bean 的映射器,它递归地将数据从一个对象复制到另一个对象。Dozer 是用来对两个对象之间属性转换的工具&#…

Dozer的学习

Dozer的学习 此教程基于黑马程序员Java品达通用权限项目,哔哩哔哩链接:https://www.bilibili.com/video/BV1tw411f79E?p44 1.dozer介绍 Dozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。 dozer是用来对…

SpringBoot Dozer

文章目录 Dozerspringboot 配置 Dozer演示Dozer工具接口和实现类全面测试项目实战演示 Dozer Dozer是什么? Dozer是一个JavaBean映射工具库。 它支持简单的属性映射,复杂类型映射,双向映射,隐式显式的映射,以及递归映射。 它支…

Dozer的使用(整合springboot)

dozer是实体类与实体类之间转换的工具&#xff0c;下面是简单操作配置 引入依赖&#xff1a; <!--dozer 实体类转换工具--><dependency><groupId>net.sf.dozer</groupId><artifactId>dozer-spring</artifactId><version>5.5.1<…