数据求均值背后的原理 - 最小二乘法

embedded/2024/9/23 7:34:10/

1. 背景

        对采集数据求均值是一种常见简单有效的数据处理手段,比如用直尺去测量物体的长度一般情况会多次测量然后计算平均值然后将平均值作为物体的长度,又如我们需要测量某电源的电压也会采取类似的方法,可以说对数据求均值在我们工作生活中无处不在,但为什么求均值后的测量值会更加接近真实值呢?

2. y=c模型

        当你使用直尺去多次测量某物体的长度,然后多次测量后会去计算多次测量后平均值并这个最终的值作为物体的长度;从结果这来说这个这个均值会更加稳定更加接近真实长度,但我们要从原因上解释均值的合理性就需要从测量谈,首先对物体测量结果如下:

x_1,x_2,x_3,\cdot \cdot \cdot, x_i

        在现实生活中由于噪声的存在,无论我们使用多么紧密的测量设备都无法测量得到物体真实的长度,所以测量值与真实值存在以下关系(ei为测量误差):

x_1=x+e_1,x_2=x+e_2,x_3=x+e_3,\cdot \cdot \cdot ,x_i=x+e_i

        那么测量误差如下(为了防止误差正负低效,这里对其计算了绝对值):

e_1=|x_1-x|,e_2=|x_2-x|,···,,e_i=|x_i-x|,\cdot \cdot \cdot ,e_m=|x_m-x|

        在最小二乘的观点中,上述所有的误差加起来最小(误差和最小)时x取值就是最靠近真实值,误差和如下:

e=\sum_{n=1}^m |e_i|=\sum_{n=1}^m |x_i-x|

        由于绝对值函数不可导无法使用微积分工具来计算最值,这里将绝对值换算成平方运算来简化计算过程方便寻找到最优解:

e=\sum_{n=1}^m (x_i-x)^2

        对其误差和求导:

e'=\sum_{n=1}^m 2(x_i-x)

        这个导数为0的即为误差和最小值点:

e'=\sum_{n=1}^m 2x-2x_i=0\\ \ \\ \sum_{n=1}^m 2x =\sum_{n=1}^m 2x_i\\ \ \\ x=\frac{\sum_{n=1}^m x_i}{m}\\ \ \\

        最终让误差和最小的x就是测量均值,均值其实就是一种特殊的最小二乘估计值。

3. y=kx+b模型

        更加常见的一种情况是,测量值之间是一种线性关系,比如要测量电阻会通过测量多组电压和电流计算得到。

        对于某种测量的结果如下:

(x_1,y_1),(x_2,y_2),\cdot \cdot \cdot ,(x_i,y_i),\cdot \cdot \cdot,(x_m,y_m)

        测量误差如下:

e_1=kx_1+b-y1\\ e_2=kx_2+b-y_2\\ ···\\ e_i=kx_i+b-y_i\\ ···\\ e_m=kx_m+b-y_m

        误差和:

e=\sum_{n=1}^m (e_i)^2\\ e=\sum_{n=1}^m (kx_i+b-y_i)^2

        与上述不同这里e是关于k和b的二元函数,需求寻找一个k和b使得误差和e取值最小,这里分别对k和b求偏导来寻找最值:

\frac{\partial e}{\partial k} = 2\sum_{n=1}^m x_i(kx_i+b-y_i)=0 \\ \ \\ \frac{\partial e}{\partial b}=\sum_{n=1}^m (kx_i+b-y_i)=0

        上式就是关于a、b的一元二次方程组,继续化简为:

a \sum_{i=1}^{n} x_i + nb = \sum_{i=1}^{n} y_i \\ \ \\ a \sum_{i=1}^{n} x_i^2 + b \sum_{i=1}^{n} x_i = \sum_{i=1}^{n} x_i y_i

        在二维的几何意义上,这是两条直线方程,只要这两条直线不平行就存在交点方程组有解,在有解情况下,a与b的代数解如下:

a = \frac{n \sum_{i=1}^{n} x_i y_i - \left( \sum_{i=1}^{n} x_i \right) \left( \sum_{i=1}^{n} y_i \right)}{n \sum_{i=1}^{n} x_i^2 - \left( \sum_{i=1}^{n} x_i \right)^2}\\ \ \\ b = \frac{\sum_{i=1}^{n} y_i - a \sum_{i=1}^{n} x_i}{n}

        上述虽然是一个二元一次方程组,方程组解的结构相对简单,但表达式过于复杂,虽然计算繁杂但只有简单的四则运算(更一般情况会使用矩阵来表示该方程组的解)。

4. 为什么要使用误差平方和最小的模型

        上述使用最小二乘计算最佳估计值都基于一个假设前提假设:估计值距离所有测量值误差和最小时估计值最接近真实值,为什么要误差和越小就越接近真实值呢?这似乎是一个“显然”成立但又有些不能被理解得到条件。针对上述长度测量的例子中,我们假定真实长度为x,每次测量误差为ei,真实值与测量值存在以下关系:x_1=x+e_1,x_2=x+e_2,x_3=x+e_3,\cdot \cdot\cdot,x_i==x+e_i

        这里面的测量误差(e_1,e_2,e_3,\cdot\cdot\cdot,e_i)在数据量足够多相对独立条件下应该符合正态分布,而且这个正态分布的均值应该为零,这也是工程上所说的白噪声。基于误差的统计特性,长度的均值:

\hat{x}=\frac{(x_1+x2+···+x_i)}{i}\\ \hat{x}=\frac{(x+x+···+x)+(e_1+e_2+···+e_i)}{i}\\\ \hat{x}=\frac{x*i}{i}+\frac{e_1+e_2+···+e_i}{i}\\ \hat{x}=x+\frac{e_1+e_2+···+e_i}{i}

        最后随测量数据越来越多,上述测量误差的均值就约接近0,估计值就越接近真实值。

著名数学家高斯站在概率论角度给了一个合理严格的解释证明,对于测量误差(e_1,e_2,e_3,\cdot\cdot\cdot,e_i)其概率为(p_{e1},p_{e2},p_{e3},···,p_{ei}),其联合概率为:

L(x)=p_{e1}p_{e2}···p_{ei}\\ \ \\ L(x)=p_{x-x1}p_{x-x2}···p_{x-xi}

        上述问题成功转换成了概率中的参数估计:x取何值时L(x)概率最大,这其实是一个最大似然估计,对于这个估计在\frac{\partial L(x)}{\partial x}=0时联合L(x)概率最大,解这个微分方程最终得到误差的概率需要满足正态分布,即最小二乘适用的条件是误差满足正态分布。

5. 总结

        均值作为一种特殊形式的最小二乘估计,当我们观测中或者测量中的误差满足正态分布,求均值是一种最优估计,最小二乘还用于其它的一些最优参数估计,其核心思想仍然是在误差满足正态分布的情况下使得误差和最小。


http://www.ppmy.cn/embedded/90254.html

相关文章

js 前端页面页面展示docx文件【插件docx-preview】

需求: 页面展示docx文件 使用插件:docx-preview.min.js,以及该插件依赖jszip.min.js 1、jszip.min.js 地址:https://cdn.bootcdn.net/ajax/libs/jszip/3.10.0/jszip.min.js2、docx-preview.min.js 地址: https://git…

【uniapp离线打包】(基于Android studio)

文章目录 uniapp打包官方教程入口一、准备工作(工具三大件)Android Studio版本推荐 二、准备工作(Android壳和uniapp包)导入Android壳生成uniapp包将uniapp包导入android壳降低jdk版本 三、准备工作(证书)准备Android平台离线签名…

小试牛刀-Telebot区块链游戏机器人(TS升级)

目录 1.编写目的 2.为什么使用TypeScript实现? 3.实现功能 3.1 AI图片生成 3.2 签到 3.3 邀请 3.4 WalletConnect连接 4.功能实现详解 4.1 AI图片生成 4.2 签到 4.3 邀请 4.4 WalletConnect连接 5.功能截图 ​6.问题整理 Welcome to Code Blocks blog 本篇文章主…

机器学习练手(二):基于KMeans的股票分类

总结:本文为和鲸python 可视化探索训练营资料整理而来,加入了自己的理解(by GPT4o) 原活动链接 在前一关我们学习了逻辑回归,学会如何训练模型、数据基础性分析、如何处理空值等操作,下面我们开始新的一关…

python dash框架

Dash 是一个用于创建数据分析型 web 应用的 Python 框架。它由 Plotly 团队开发,并且可以用来构建交互式的 web 应用程序,这些应用能够包含图表、表格、地图等多种数据可视化组件。 Dash 的特点: 易于使用:Dash 使用 Python 语法…

物联网项目——基于stm32的智能宠物喂食器

一、项目介绍: 智能宠物喂食器是一种通过嵌入式系统控制的设备,旨在为宠物提供自动化的喂食服务。基于 STM32 微控制器的智能宠物喂食器结合了精确的时间控制、用户友好的操作界面和灵活的喂食计划,使宠物主人能够远程管理和监控宠物的饮食。…

【Python系列】Python 字典合并

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Mongodb索引

MongoDB中的索引(Indexes)是为了加速查询而创建的数据结构。MongoDB的索引与关系数据库的索引类似,可以显著提高读取操作的性能。 mongodb中的索引概念 默认索引:MongoDB在每个集合上都会自动创建一个包含_id字段的唯一索引。自定…