Skip to content

Kalman 滤波器

Kalman filter · 卡尔曼滤波器

在线性高斯状态空间模型中递推计算状态预测与过滤分布均值、协方差及似然的算法。

领域
统计学
条目类型
算法

形式陈述

对线性高斯状态空间时间序列模型,设上一步过滤分布为 αt1y1:t1N(mt1,Ct1)。预测步骤为

at=Ttmt1+ct,Pt=TtCt1TtT+RtQtRtT.

观测到 yt 后,创新、创新协方差与 Kalman 增益为

vt=ytdtZtat,Ft=ZtPtZtT+Ht,Kt=PtZtTFt1.

Ft 可逆,更新为

mt=at+Ktvt,Ct=PtKtFtKtT.

在高斯假设下,这些量精确给出 p(αty1:t);每期 vtN(0,Ft) 的预测密度可相加为 log likelihood。仅有二阶矩和线性模型时,同一递推仍给最佳线性均方估计,但一般不等于完整条件期望,也不产生精确高斯后验。

直觉

预测先让上一期不确定性随动力学传播,并加上新过程噪声;更新再比较实际观测与预测观测的差 vtKt 按状态预测不确定性相对于测量噪声的大小分配信任:状态很不确定、测量精确时增益大,反之增益小。更新后的协方差不依赖本次观测数值,只依赖模型矩阵和先前协方差。

这不是简单固定权重平滑。增益每期可随缺失数据、时变噪声和累计信息改变,矩阵情形还会把一个观测沿状态坐标间的协方差传播。过滤只用现在及过去;使用未来观测改善历史状态叫平滑。把滤波输出称作平滑估计会混淆可用信息集和不确定性。

例子与边界

沿用局部水平模型:m0=10,C0=4,过程方差 Q=1,观测方差 H=4,且 T=Z=R=1。第一期预测

a1=10,P1=4+1=5.

观测 y1=12 后,v1=2,F1=9,K1=5/9,故

m1=10+592=100911.1111,C1=5259=2092.2222.

第二期观测 y2=11。先预测 a2=100/9,P2=20/9+1=29/9;再得 v2=1/9,F2=65/9,K2=29/65,于是

m2=7196511.0615,C2=(12965)299=116651.7846.

两个更新都可用标量高斯精度加权复算;后验方差下降,但下一次预测会再加过程方差。

若初始 C0 错设得极小,前几期增益会过小,滤波器顽固追随错误初值;弥散状态不能随意用零方差初始化。Ft 奇异意味着某些观测组合在模型下无随机误差,需消除冗余或用奇异滤波处理,不能盲目求逆。非线性、重尾或离群观测下,标准递推可能过度自信;扩展 Kalman 只是一阶近似,不因名字相近而继承精确性。

推论与应用

Kalman 滤波把每期计算限制在固定维度的矩阵运算,使很长序列的过滤和高斯似然保持线性时间复杂度。缺失整期观测时可跳过更新、保留预测;部分缺失时删去对应观测行和协方差块。结合 Rauch–Tung–Striebel 向后递推可得到平滑分布,预测误差似然还可置于数值优化或 EM 的外层来估参数;参数估计是利用滤波输出的另一层任务,并非过滤递推本身。

数值实现应避免显式矩阵逆,改用 Cholesky 求解;协方差更新可用 Joseph 形式

Ct=(IKtZt)Pt(IKtZt)T+KtHtKtT

或平方根滤波保持对称正半定。理论递推正确不代表模型正确:持续偏置的创新、标准化创新重尾或相关、估计参数漂移都提示错设。应联合报告创新诊断、初始化、噪声协方差和数值稳定策略。

参考资料
  • James Durbin and Siem Jan Koopman, Time Series Analysis by State Space Methods, 2nd ed., Oxford University Press, 2012,Chs. 4–5,Kalman filtering, prediction-error decomposition, and initialization。
  • Robert H. Shumway and David S. Stoffer, Time Series Analysis and Its Applications, 4th ed., Springer, 2017,§6.2,Kalman filtering and likelihood。
  • Brian D. O. Anderson and John B. Moore, Optimal Filtering, Prentice-Hall, 1979,Ch. 3,discrete-time Kalman filter and covariance recursions。
关系图谱10 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组