最小二乘法求解直线方程系数

引言

最小二乘法是经典的参数稳健估计方法。核心思想是使得估计出的模型与实际数据之间误差的平方和最小(趋于0)。直线参数的估计又是最常用的曲线参数估计,稳健估计方法有很多:RANSAC、BaySAC、极大似然法等,这篇博文主要讲解如何使用最小二乘法估计直线参数。


这里写图片描述
一群离散观测点,及其最小二乘估计直线方程

直线方程最优拟合

直线方程的形式比较多,粗略统计有10种之多,如:一般式、点斜式、截距式、斜截式 。本博文采用直线斜截式,最小二乘拟合其方程系数。
斜截式: y=kx+b ,适用于不垂直于 x 轴的直线。

  1. 斜率为k

    • y 轴截距为b
    • 根据最小二乘原理,误差平方和最小,得误差函数: f=ni=1(yikxib))2=0 。高数中极值定理可知,误差方程一阶导数等于0处取得极值,因此分别对其关于 k b求导,解 k,b 值使得误差函数取最小值。但是直线斜截式无法表示垂直 x 轴的直线,如:x=3

      fk=ni=1[(yikxib)xi]=0fb=ni=1(yikxib)=0

      {ni=1(xiyi)kni=1(x2i)bni=1(xi)=0ni=1(yi)kni=1(xi)nb=0

      令, A=ni=1(x2i) B=ni=1(xi) C=ni=1(xiyi) A=ni=1(yi) ,得

      {Ak+bB=CBk+nb=D

      {k=CnBDAnBBb=ADCBAnBB

      上面过程繁琐,只适用于直线的最小二乘解。下面将直线斜截式拓展导任意曲线,任意曲线方程 p(x)=p1xn+p2xn1++pnx+pn+1 。可以看到直线斜截式即, n=1 时的曲线方程。将曲线方程,写成矩阵乘积的形式:

      x1x2xn111p1p2pn=y1y2yn

      上面乘积形式,即 AX=B X=(ATA)1ATB ,解出的 X 就是最小二乘解。

      总结

      斜截式虽然并不能表示竖直直线,但是实际应用中也基本不太可能遇到完全竖直直线,竖直的直线也可以用尽量大的系数a表示。上面列出了两种直线系数低最小二乘计算方法,具体使用哪一种可以根据使用环境确定。若模型单一,只有二维直线时候,建议使用第一种具有计算速度快的优点。

      参考

      [1]http://cn.mathworks.com/help/matlab/ref/polyfit.html?searchHighlight=polyfit&s_tid=doc_srchtitle
      [2]https://www.varsitytutors.com/hotmath/hotmath_help/topics/line-of-best-fit

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值