博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小二乘法-公式推导
阅读量:5088 次
发布时间:2019-06-13

本文共 2053 字,大约阅读时间需要 6 分钟。

基本思想

求出这样一些未知参数使得样本点和拟合线的总误差(距离)最小

最直观的感受如下图(图引用自知乎某作者)

1151103-20171116152431734-2123874788.jpg

而这个误差(距离)可以直接相减,但是直接相减会有正有负,相互抵消了,所以就用差的平方

推导过程

1 写出拟合方程

\(y = a+bx\)

2 现有样本\((x_1, y_1),(x_2, y_2)...(x_n, y_n)\)

3 设\(d_i\)为样本点到拟合线的距离,即误差

\(d_i=y_i-(a+bx_i)\)

4 设\(D\)为差方和(为什么要取平方前面已说,防止正负相互抵消)

\(D=\sum\limits_{i=1}^{n}d_i^2=\sum\limits_{i=1}^{n}(y_i-a-bx_i)\)

5 根据一阶导数等于0,二阶大于等于0(证明略)求出未知参数

对a求一阶偏导
$
\begin{aligned}
\frac{\partial D}{\partial a}
&=\sum\limits_{i=1}^{n}2(y_i-a-bx_i)(-1)\
&=-2\sum\limits_{i=1}^{n}(y_i-a-bx_i)\
\end{aligned}
$
$
\begin{aligned}
&=-2(\sum\limits_{i=1}^{n}y_i-\sum\limits_{i=1}^{n}a-b\sum\limits_{i=1}^{n}x_i)\
&=-2(n\bar{y}-na-nb\bar{x})
\end{aligned}
$

对b求一阶偏导

$
\begin{aligned}
\frac{\partial D}{\partial b}
&=\sum\limits_{i=1}^{n}2(y_i-a-bx_i)(-x_i)\
&=-2\sum\limits_{i=1}^{n}(x_iy_i-ax_i-bx_i^2)\
\end{aligned}
$
$
\begin{aligned}
&=-2(\sum\limits_{i=1}^{n}x_iy_i-a\sum\limits_{i=1}^{n}x_i-b\sum\limits_{i=1}^{n}x_i^2)\
&=-2(\sum\limits_{i=1}^{n}x_iy_i-na\bar{x}-b\sum\limits_{i=1}^{n}x_i^2)
\end{aligned}
$

令偏导等于0得

\(-2(n\bar{y}-na-nb\bar{x})=0\)
\(=> \color{red}{a=\bar{y}-b\bar{x}}\)

\(-2(\sum\limits_{i=1}^{n}x_iy_i-na\bar{x}-b\sum\limits_{i=1}^{n}x_i^2)=0\)并将\(a=\bar{y}-b\bar{x}\)带入化简得

\(=>\sum\limits_{i=1}^{n}x_iy_i-n\bar{x}\bar{y}+nb\bar{x}^2-b\sum\limits_{i=1}^{n}x_i^2=0\)
\(=>\sum\limits_{i=1}^{n}x_iy_i-n\bar{x}\bar{y}=b(\sum\limits_{i=1}^{n}x_i^2-n\bar{x}^2)\)
\(=>b=\frac{\sum\limits_{i=1}^{n}x_iy_i-n\bar{x}\bar{y}}{\sum\limits_{i=1}^{n}x_i^2-n\bar{x}^2}\)

因为\(\require{cancel}\sum\limits_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})=\sum\limits_{i-1}^{n}(x_iy_i-\bar{x}y_i-x_i\bar{y}+\bar{x}\bar{y})=\sum\limits_{i=1}^{n}x_iy_i-n\bar{x}\bar{y}-\cancel{n\bar{x}\bar{y}}+\cancel{n\bar{x}\bar{y}}\)

\(\sum\limits_{i=1}^{n}(x_i-\bar{x})^2=\sum\limits_{i-1}^{n}(x_i^2-2\bar{x}x_i+\bar{x}^2)=\sum\limits_{i=1}^{n}x_i^2-2n\bar{x}^2+n\bar{x}^2=\sum\limits_{i=1}^{n}x_i^2-n\bar{x}^2\)

所以将其带入上式得\(\color{red}{b=\frac{\sum\limits_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sum\limits_{i=1}^{n}(x_i-\bar{x})^2}}\)

转载于:https://www.cnblogs.com/paiandlu/p/7843236.html

你可能感兴趣的文章
BZOJ1119[POI2009]SLO && BZOJ1697[Usaco2007 Feb]Cow Sorting牛排序
查看>>
Django组件——分页器和中间件
查看>>
scala 14 trait
查看>>
You need to run build with JDK or have tools.jar问题解决
查看>>
BZOJ 1030: [JSOI2007]文本生成器 [AC自动机 DP]
查看>>
HDU 3949 XOR [高斯消元XOR 线性基]
查看>>
for-each用法误区(不能改变数组元素值)
查看>>
f.select
查看>>
SSH2各部分作用
查看>>
不设置默认网关,导致traceroute无法获取途经路由信息原因
查看>>
MySql优化—删除操作
查看>>
三天打渔两天晒网
查看>>
python编码的那些事
查看>>
编程语言分类
查看>>
[转]GIT PUSH Error 403的解决方法
查看>>
Unity 移动主角的时候,鼠标被固定在屏幕中心而且被隐藏
查看>>
自已接触过的数据访问方式总结
查看>>
[2017.02.18] 《调试九法》略读
查看>>
(转) ns2/nam与nam实现相关的文件
查看>>
计算任意文件夹的大小
查看>>