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

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代码

代码中会用到正规方程解,及:
θ = ( X T X ) − 1 X T y θ = (X^{T}X)^{-1}X^Ty θ=(X

  • 28
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值