最小二乘估计心得

news/2025/1/31 9:10:02/

基本思想

存在一组观察值 ( x i , y i ) (x_i, y_i) (xi,yi),其中 y i y_i yi x i x_i xi之间满足一定的线性关系,如
y = a 0 f 0 ( x ) + a 1 f 1 ( x ) + . . . + a m − 1 f m − 1 ( x ) y = a_0 f_0(x) + a_1 f_1(x) + ... + a_{m-1} f_{m-1}(x) y=a0f0(x)+a1f1(x)+...+am1fm1(x)
其中 f i ( x ) f_i(x) fi(x)是已知的, a i a_i ai未知。
由于测量过程中存在一定的误差,所以导致测量得到的 y i y_i yi具有一定的误差,即
y i = a 0 f 0 ( x i ) + a 1 f 1 ( x i ) + . . . + a m − 1 f m − 1 ( x i ) + e i y_i = a_0 f_0(x_i) + a_1 f_1(x_i) + ... + a_{m-1} f_{m-1}(x_i) + e_i yi=a0f0(xi)+a1f1(xi)+...+am1fm1(xi)+ei
假设,我们由 n n n组观察值,将其写为矩阵的形式
y ⃗ = H a ⃗ + e ⃗ \vec{y} = H\vec{a} + \vec{e} y =Ha +e
y ⃗ \vec{y} y e ⃗ \vec{e} e 为一个 n × 1 n\times1 n×1的向量, a ⃗ \vec{a} a m × 1 m\times 1 m×1的向量, H H H为一个已知的 n × m n\times m n×m的矩阵
( f 0 ( x 0 ) f 1 ( x 0 ) . . . f m − 1 ( x 0 ) f 0 ( x 1 ) f 1 ( x 1 ) . . . f m − 1 ( x 1 ) . . . . . . . . . . . . f 0 ( x n − 1 ) f 1 ( x n − 1 ) . . . f m − 1 ( x n − 1 ) ) \begin{pmatrix} f_0(x_0) & f_1(x_0) & ... & f_{m-1}(x_0) \\ f_0(x_1) & f_1(x_1) & ... & f_{m-1}(x_1) \\ ... & ... & ... & ... \\ f_0(x_{n-1}) & f_1(x_{n-1}) & ... & f_{m-1}(x_{n-1})\end{pmatrix} f0(x0)f0(x1)...f0(xn1)f1(x0)f1(x1)...f1(xn1)............fm1(x0)fm1(x1)...fm1(xn1)
由于测量误差满足高斯分布,由最大似然估计可得,选取使得 ∣ y ⃗ − H a ⃗ ∣ 2 |\vec{y} - H\vec{a}|^2 y Ha 2达到最小值的 a ^ \hat{a} a^就是最真实 a ⃗ \vec{a} a 的最优估计。

最小二乘估计表达式推导过程

令代价函数 L ( a ⃗ ) = ∣ y ⃗ − H a ⃗ ∣ 2 L(\vec{a}) = |\vec{y} - H\vec{a}|^2 L(a )=y Ha 2,将 L ( a ⃗ ) L(\vec{a}) L(a ) a ⃗ \vec{a} a 进行求导可得
∂ L ( a ⃗ ) ∂ a ⃗ = − 2 H T y ⃗ + 2 H T H a ⃗ \frac{\partial{L(\vec{a})}}{\partial{\vec{a}}} = -2H^T\vec{y} + 2H^TH\vec{a} a L(a )=2HTy +2HTHa
令其为零可得
a ^ = ( H T H ) − 1 H T y ⃗ \hat{a} = (H^TH)^{-1}H^T\vec{y} a^=(HTH)1HTy

举例说明

利用matlab生成一组数据,满足如下的表达式
y = a 0 f 0 ( x ) + a 1 f 1 ( x ) + a 2 f 2 ( x ) + e ( x ) y = a_0 f_0(x) + a_1 f_1(x) + a_2 f_2(x)+e(x) y=a0f0(x)+a1f1(x)+a2f2(x)+e(x)
其中 a 0 = 1 a_0 = 1 a0=1 , a 1 = 2 a_1 = 2 a1=2, a 2 = 10 a_2 = 10 a2=10, f 0 ( x ) = x f_0(x) = x f0(x)=x, f 1 ( x ) = e x f_1(x) = e^x f1(x)=ex, f 2 ( x ) = x 2 f_2(x) = x^2 f2(x)=x2 e ( x ) e(x) e(x)服从标准正态分布

% 测试LSM算法
% f0 = 1; f1 = e^x; f2 = x^2
% a0 = 1; a1 = 2; a2 = 10
t = 0 : 0.01 : 3;
f0 = ones(1, length(t));
f1 = exp(t);
f2 = t.^2;
% f1 = t;
% f2 = t.^2;a0 = 1;
a1 = 2;
a2 = 10;H = [f0' f1' f2'];
y = a0*f0 + a1*f1 + a2*f2 + randn(1, length(t));
y = y';est_a = inv(H'*H)*H'*y;plot(y);
hold on
plot(est_a' * [f0;f1;f2]);
legend('带有噪声的观测量', '估计得到的观测量')

得到的结果如下:
在这里插入图片描述得到的 a ^ = [ 0.9807 , 1.9565 , 10.0977 ] \hat{a} = [0.9807, 1.9565, 10.0977] a^=[0.9807,1.9565,10.0977],可以看到能够较好地估计原理论值 a ⃗ = [ 1 , 2 , 10 ] \vec{a} = [1, 2, 10] a =[1,2,10]


http://www.ppmy.cn/news/94989.html

相关文章

线段树C++详细讲解和个人见解

问题引入 假设有这样的问题&#xff1a;有n个数&#xff0c;m次操作&#xff0c;操作分为&#xff1a;修改某一个数或者查询一段区间的值 数据范围是&#xff08;1 < n, m<1e9)。 这种题大家一看就知道打暴力&#xff0c;但是一看数据范围就知道只能得部分。 我们之前…

GO 语言核心编程-全文版

第 1 章 1.1Golang的学习方向 Go语言&#xff0c;我们可以简单的写成Golang. Golang开山篇 1.2Golang的应用领域 1.2.1区块链的应用开发 1.2.2后台的服务应用 1.2.3云计算/云服务后台应用 1.3学习方法的介绍 1.4讲课的方式的说明 努力做到通俗易懂注重Go语言体系&#xff…

Dubbo源码解析一服务暴露与发现

Dubbo 服务暴露与发现 1. Spring中自定义Schema1.1 案例使用1.2 dubbo中的相关对象 2. 服务暴露机制2.1 术语解释2.2 流程机制2.3 源码分析2.3.1 导出入口2.3.2 导出服务到本地2.3.3 导出服务到远程(重点)2.3.4 开启Netty服务2.3.5 服务注册2.3.6 总结 3. 服务发现3.1 服务发现…

canal server 标准化集群搭建(一)

1.背景 随这业务增加&#xff0c;数据同步服务 canal server 需求与日俱增&#xff0c;以往私搭乱建的 canal server 不符合运维标准化。 2.目的 规范 canal server 的部署&#xff0c;形成固定操作流程及文档 3. 环境版本 canal server&#xff1a; canal.deployer-1.1.…

Oracle Linux 8.8 发布 - Oracle 提供支持 RHEL 兼容发行版

Oracle Linux 8.8 发布 - Oracle 提供支持 RHEL 兼容发行版 Oracle Linux with Unbreakable Enterprise Kernel (UEK) & Red Hat compatible kernel (RHCK) 请访问原文链接&#xff1a;https://sysin.org/blog/oracle-linux-8/&#xff0c;查看最新版。原创作品&#xff…

2023 (ICPC) Jiangxi Provincial Contest -- Official Contest

A. Drill Wood to Make Fire 输出即可 #include<bits/stdc.h> #define int long long #define x first #define y second using namespace std; const int N1100; typedef pair<int,int>pii;int m,n; int a[N][N];void solve() {int s,v,n;cin>>n>>s&…

花朵识别系统Python实现,深度学习卷积神经网络算法

一、背景 花朵识别系统&#xff0c;基于Python实现&#xff0c;深度学习卷积神经网络&#xff0c;通过TensorFlow搭建卷积神经网络算法模型&#xff0c;并对数据集进行训练最后得到训练好的模型文件&#xff0c;并基于Django搭建可视化操作平台。 在当今信息化社会&#xff0c…

一种使用Java的快速将Web中表格转换成Excel的方法

背景 随着后疫情时代的到来&#xff0c;在过去的2022年&#xff0c;全国的经济情况&#xff0c;想必是很多学者和研究对象都非常关心的事。而这些数据在国家统计局网站上都有相应的记录。通过分析这些数据&#xff0c;可以从某一个角度来验证和观察当下的经济情况。 全国共计有…