ARTICLE

卡尔曼滤波

卡尔曼滤波 (Kalman Filter) 卡尔曼滤波 (Kalman Filter) 是一种从含噪声的观测序列中递推估计动态系统状态的算法。由匈牙利裔数学家鲁道夫·卡尔曼 (Rudolf E. Kálmán) 于 1960 年提出,其核心思想是:在状态空间模型 (State-Space Model) 框架下,以预测-更新 (Predict-Update)

浏览 0 更新 2025-11-08

卡尔曼滤波 (Kalman Filter)

卡尔曼滤波 (Kalman Filter) 是一种从含噪声的观测序列中递推估计动态系统状态的算法。由匈牙利裔数学家鲁道夫·卡尔曼 (Rudolf E. Kálmán) 于 1960 年提出,其核心思想是:在状态空间模型 (State-Space Model) 框架下,以预测-更新 (Predict-Update) 的递推方式,融合系统动力学模型与实际观测数据,产生比单纯依赖模型或观测更优的状态估计。卡尔曼滤波是最小均方误差 (MMSE) 意义下的最优线性估计器,且当系统噪声和观测噪声均为高斯分布时,它给出所有估计器(线性与非线性)中的最优解。

卡尔曼滤波最初用于阿波罗计划的导航与制导系统,此后被广泛应用于控制系统信号处理机器人学计量经济学量化金融等领域。其递推结构仅需存储上一时刻的状态估计和协方差矩阵,无需保存完整历史数据,特别适合实时应用和嵌入式系统等存储受限场景。在统计学中,卡尔曼滤波可视为线性高斯状态空间模型下贝叶斯滤波的解析递推解,与指数平滑维纳滤波等经典方法有深刻联系,但超越了维纳滤波仅适用于平稳过程的局限。

状态空间模型

卡尔曼滤波建立在如下线性动态系统之上:

\begin{align} \(\mathbf{x}_t\) \&= \(F_t\) \(\mathbf{x}_{t-1}\) + \(B_t\) \(\mathbf{u}_t\) + \(\mathbf{w}_t\), \quad \(\mathbf{w}_t\) \sim \(\mathcal{N}\)(0, \(Q_t\)) \label{eq:state} \\ \(\mathbf{z}_t\) \&= \(H_t\) \(\mathbf{x}_t\) + \(\mathbf{v}_t\), \quad \(\mathbf{v}_t\) \sim \(\mathcal{N}\)(0, \(R_t\)) \label{eq:obs} \end{align}

其中 (\refeq:state)(\ref{eq:state})状态方程 (State Equation):xtRn\mathbf{x}_t \in \mathbb{R}^ntt 时刻不可直接观测的状态向量,FtF_t 为状态转移矩阵,ut\mathbf{u}_t 为可选控制输入,wt\mathbf{w}_t 为过程噪声。(\refeq:obs)(\ref{eq:obs})观测方程 (Observation Equation):ztRm\mathbf{z}_t \in \mathbb{R}^m 是可观测的测量向量,HtH_t 将状态映射至观测空间,vt\mathbf{v}_t 为观测噪声。过程噪声协方差 QtQ_t 和观测噪声协方差 RtR_t 均假定已知。

算法步骤:预测与更新

卡尔曼滤波以递推方式运行,每步包含两个阶段:

预测阶段 (Prediction Step)——基于 t1t-1 时刻的估计预测 tt 时刻的先验状态与协方差:

x^tt1=Ftx^t1t1+Btut\hat{\mathbf{x}}_{t|t-1} = F_t \hat{\mathbf{x}}_{t-1|t-1} + B_t \mathbf{u}_t
Ptt1=FtPt1t1Ft+QtP_{t|t-1} = F_t P_{t-1|t-1} F_t^\top + Q_t

更新阶段 (Update Step)——利用新观测 zt\mathbf{z}_t 修正先验估计,得到后验状态与协方差:

yt=ztHtx^tt1(新息, Innovation)\mathbf{y}_t = \mathbf{z}_t - H_t \hat{\mathbf{x}}_{t|t-1} \quad \text{(新息, Innovation)}
St=HtPtt1Ht+Rt(新息协方差)S_t = H_t P_{t|t-1} H_t^\top + R_t \quad \text{(新息协方差)}
Kt=Ptt1HtSt1(卡尔曼增益)K_t = P_{t|t-1} H_t^\top S_t^{-1} \quad \text{(卡尔曼增益)}
x^tt=x^tt1+Ktyt\hat{\mathbf{x}}_{t|t} = \hat{\mathbf{x}}_{t|t-1} + K_t \mathbf{y}_t
Ptt=(IKtHt)Ptt1P_{t|t} = (I - K_t H_t) P_{t|t-1}

核心在于卡尔曼增益 KtK_t:它根据预测不确定性 Ptt1P_{t|t-1} 与观测噪声 RtR_t 的相对大小动态加权。当观测噪声较小(Rt0R_t \to 0)时,KtHt1K_t \to H_t^{-1},估计倾向于信任观测;当预测不确定性较小(Ptt10P_{t|t-1} \to 0)时,Kt0K_t \to 0,估计倾向于信任模型预测。

数学推导与最优性

卡尔曼滤波的更新公式可从多种角度导出:(1)最小均方误差准则下的正交投影;(2)最大后验估计 (MAP) 在高斯线性假设下的解析解;(3)递推贝叶斯滤波框架中,先验与似然均为高斯时的共轭更新。在过程噪声与观测噪声均为零均值高斯白噪声且互不相关的条件下,卡尔曼滤波产生状态的后验分布 xtz1:tN(x^tt,Ptt)\mathbf{x}_t \mid \mathbf{z}_{1:t} \sim \mathcal{N}(\hat{\mathbf{x}}_{t|t}, P_{t|t}),该分布完整刻画了估计的不确定性。若不满足高斯假设,卡尔曼滤波仍是所有线性估计器中均方误差最小的(最佳线性无偏估计,BLUE),但不一定是全局最优。

扩展与变体

扩展卡尔曼滤波 (Extended Kalman Filter, EKF):当系统非线性时,EKF 通过对状态转移函数 f()f(\cdot) 和观测函数 h()h(\cdot) 在当前估计处进行一阶泰勒展开,将问题局部线性化:

Ft=fxx^t1t1,Ht=hxx^tt1F_t = \frac{\partial f}{\partial \mathbf{x}}\bigg|_{\hat{\mathbf{x}}_{t-1|t-1}}, \quad H_t = \frac{\partial h}{\partial \mathbf{x}}\bigg|_{\hat{\mathbf{x}}_{t|t-1}}

EKF 计算雅可比矩阵替代原线性矩阵。其局限在于线性化误差在强非线性系统中不可忽略,且雅可比矩阵的解析推导繁琐。

无迹卡尔曼滤波 (Unscented Kalman Filter, UKF):通过无迹变换 (Unscented Transform) 选取一组确定性 sigma 点传播状态分布的前两阶矩,避免了显式线性化。UKF 可达二阶泰勒精度,且无需计算导数。对于强非线性和多模态分布,粒子滤波 (Particle Filter) 是更通用但计算成本更高的替代方案。

信息滤波 (Information Filter):以信息矩阵 P1P^{-1} 和信息向量 P1x^P^{-1}\hat{\mathbf{x}} 为递推对象,在处理缺失观测(设 Ht=0H_t=0)和多传感器融合中具有代数便利性。

经济学与金融应用

卡尔曼滤波在计量经济学中有广泛的应用场景:

  • 时变参数模型 (Time-Varying Parameter Models):在宏观经济学中,货币政策传导系数、菲利普斯曲线斜率等结构性参数可能随时间缓慢变化。卡尔曼滤波可将其建模为隐状态,利用可观测宏观变量序列实时追踪参数演化轨迹。
  • 状态空间形式的 ARMA 模型:任何ARMA过程均可表示为状态空间形式,卡尔曼滤波从而提供精确的似然函数计算(通过预测误差分解),用于极大似然估计
  • 随机波动率模型 (Stochastic Volatility):在金融计量中,资产收益率的波动率是不可观测的隐变量。对数随机波动率可建模为高斯 AR(1) 过程,卡尔曼滤波(或其近似变体)被用于波动率的实时估计与预测。
  • 动态因子模型 (Dynamic Factor Models):从大量宏观经济序列中提取少数共同因子,卡尔曼滤波与极大似然的结合(经 EM 算法或直接数值优化)是标准估计方法。
  • 期限结构模型利率期限结构仿射模型 (Affine Term Structure Model) 可写为状态空间形式,卡尔曼滤波用于从观测到的债券收益率中估计潜在因子。

实现注意事项与局限性

实际应用中需注意:QtQ_tRtR_t 的设定对滤波性能影响显著,通常通过极大似然估计或EM算法从数据中学习;初始状态 x^0\hat{\mathbf{x}}_0 和协方差 P0P_0 的选择影响收敛速度,一般取 P0P_0 为较大的对角矩阵以反映初始不确定性;数值稳定性方面,Joseph 形式的协方差更新 Ptt=(IKtHt)Ptt1(IKtHt)+KtRtKtP_{t|t} = (I - K_t H_t) P_{t|t-1} (I - K_t H_t)^\top + K_t R_t K_t^\top 可保证 PttP_{t|t} 的对称正定性,推荐在有限精度运算中使用。

卡尔曼滤波的核心局限在于线性高斯假设。当系统具有显著非线性、噪声非高斯或状态空间为离散/混合型时,需转向 EKF、UKF、粒子滤波或隐马尔可夫模型等方法。此外,卡尔曼滤波要求 QtQ_tRtR_t 事先已知或可估计,但在实践中噪声协方差的错误设定可能导致滤波发散或估计精度严重退化,因此自适应卡尔曼滤波 (Adaptive Kalman Filter) 的研究——即从数据中同时学习噪声统计特性——一直是活跃的研究方向。尽管如此,作为状态估计理论的基石,卡尔曼滤波的递推预测-更新范式深刻影响了统计信号处理、随机控制和贝叶斯推断的理论发展与实践应用。