最小二乘估计法介绍
最小二乘估计是一种利用观测数据估计线性模型中未知参数的方法,其基本的思想是选择合适的估计参数使得模型输出与传感器实测输出数据之差的平方和最小。
对于一个线性模型,其含有 m+1 种可观测的变量 (Ω0,Ω1,...,Ωm),每个参数(除 Ω0 之外)具有一个未知的参数 (O1,O2,...,Om).
模型方程为:
Ω0+m∑j=1OjΩj=0(1)
现在需要进行 n 次观测来估计这些未知参数,要求 n≥m。由于每次观测存在误差,所以对于每次观测,其方程应修改为:
Ωi0+m∑j=1OijΩij=εi(2)
式中,εi 即为每次的观测误差。
矩阵描述
用 θ 表示待估计量,Z(k)、N(k) 表示第 k 次观测数据和观测噪声,H(k) 为观测矩阵,则线性观测方程可描述为:
Z(k)=H(k)θ+N(k)(3)
使用矩阵描述可以大大简化后面的计算推导。
用 ^θ 表示估计量,则最小二乘法要求测量模型输出 H(k)^θ 与实际测量数据 Z(k) 的平方和最小,将其表示为与 ^θ 相关的一个函数:
J(^θ)=(Zk−Hk^θ)T(Zk−Hk^θ)(4)
补充矩阵求导的相关公式
设 x∈Fn×n 为常矩阵,有 f=xTAx,则 dfdx=(A+AT)x。
证明 根据乘法公式:
dfdx=ddx(xTAx)=dxTdxAx+d(Ax)Tdxx=Ax+ATx=(A+AT)x
对 J(^θ) 求导得:
∂∂^θ[(Zk−Hk^θ)T(Zk−Hk^θ)]=−2HTk(Zk−Hk^θ)(5)
令导数等于0得
HTkZk=HTkHk^θ(6)
若 HTkHk 为满秩矩阵,则
^θ=(HTkHk)−1HTkZk(7)
最小二乘加权估计
在上面的最小二乘估计中并没有使用测量设备的噪声方差,如果在已知噪声方差的情况下,理论上应该可以减小估计结果的偏差。方差更大的数据在估计中的作用应该越小,也就是对测量数据进行加权处理。
假设测量噪声为 Nk,并有 E(Nk)=0,E(NkNTk)=Rk,取权值矩阵 W=R−1k。则函数 J(^θ) 修改为:
Jw(^θ)=(Zk−Hk^θ)TW(Zk−Hk^θ)(8)
求极值得:
^θ=(HTkWHk)−1HTkWZk(9)
线性最小二乘递推估计
之前讲到的最小二乘法都需要等到收集到所有的测量数据之后才能进行估计,不具有实时性。递推估计的核心思想是,在获得测量数据之后及时进行处理,在估计当前时刻的参数时,利用前一次得到的结果。
根据式9, 在 k−1 时刻的估计结果为:
^θ(k−1)=[HTk−1Wk−1Hk−1]−1HTk−1Wk−1Zk−1(10)
令 Mk=[HTkWkHk]−1,则由 k−1 时刻相关数据递推 k 时刻的公式为:
Mk={[HTk−1HT(k)][Wk−100W(k)][Hk−1H(k)]}−1(11)
注:这里分清 Hk 和 H(k) 的区别,Hk 表示 0 到 k 时刻的数据所组成的向量,而 H(k) 单指 k 时刻,其他变量同理。
进而可以计算得到
Mk=[M−1k−1+HT(k)W(k)H(k)]−1(12)
由式10 得
^θ(k)=MkHTkWkZk=Mk[HTk−1HT(k)][Wk−100W(k)][Zk−1Z(k)]=Mk[HTk−1Wk−1Zk−1+HT(k)W(k)Z(k)](13)
又 HTk−1Wk−1Zk−1=M−1k−1^θ(k−1),代入式13 再消去 M−1k−1 得
^θ(k)=^θ(k−1)+MkHT(k)[Z(k)−H(k)^θ(k−1)](14)
现将递推最小二乘估计总结如下:
设 M0、^θ(0) 为迭代初始值,^θ(0) 为一合适的数,M0 为一个大的数或正定矩阵,其维度与 HT(k)W(k)H(k) 相同,递推最小二乘法由两个递推公式组成:
M−1k=M−1k−1+HT(k)W(k)H(k)^θ(k)=^θ(k−1)+MkHT(k)W(k)[Z(k)−H(k)^θ(k−1)](16)
式中,MkHT(k)W(k) 为滤波增益K(k)。
最小二乘的性能——估计方差
估计方差的定义为
P(k)=E[(θ−^θ(k))(θ−^θ(k))T](17)
代入 ^θ(k)=^θ(k−1)+K(k)[Z(k)−H(k)^θ(k−1)] 和式3 得
P(k)=[I−K(k)H(k)]P(k−1)[I−K(k)H(k)]T+K(k)R(k)KT(k)(18)
P(k) 对滤波增益求偏导得
∂P(k)∂K(k)=2[I−K(k)H(k)]P(k−1)[−HT(k)]+2K(k)R(k)=0(19)
整理得
K(k)=P(k−1)HT(k)[R(k)+H(k)P(k−1)HT(k)]−1(20)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)