使用卡尔曼滤波器估算时间序列中的缺失值


12

我对如何使用卡尔曼滤波器来估算时间序列数据中的缺失值感兴趣。如果缺少一些连续的时间点,是否也适用?我在这个话题上找不到很多。欢迎任何解释,评论和链接!


您可能对此职位感兴趣。它给出了一个基于ARIMA模型的状态空间表示的示例,以借助卡尔曼滤波器来插补缺失值。
javlacalle 2015年

@javlacalle谢谢,我已经知道了这篇文章,这是具体实现的一个很好的例子。但是我对理论背景很感兴趣。
GS9 2015年

Answers:


9

初步:卡尔曼滤波

卡尔曼滤波器在形式的状态空间模型上运行(有多种写法;这是基于Durbin和Koopman(2012)的简单方法;以下所有内容均基于该书,非常出色):

yt=Zαt+εtεtN(0,H)αt1=Tαt+ηtηtN(0,Q)α1N(a1,P1)

其中是观察到的序列(可能缺少值),但是完全未被观察到。第一个方程式(“测量”方程式)表示观察到的数据以特定方式与未观察到的状态相关。第二个方程式(“过渡”方程式)表示未观察到的状态以特定的方式随时间变化。ytαt

卡尔曼滤波器的作用是找到最佳估计值(假定为正态:,所以卡尔曼滤波器的实际作用是计算条件均值和方差取决于直到时间观察)。αtαtαtN(at,Pt)αtt

在典型情况下(当有观测值可用时),卡尔曼滤波器使用当前状态的估计值和当前观测值来估计下一个状态,如下所示:ytαt+1

at+1=Tat+Kt(ytZαt)Pt+1=TPt(TKtZ)+Q

其中是“卡尔曼增益”。Kt

当没有观测值时,卡尔曼滤波器仍然希望以最佳方式计算和。由于不可用,因此无法使用测量方程式,但仍可以使用过渡方程式。因此,当丢失时,卡尔曼滤波器将计算:at+1Pt+1ytyt

at+1=TatPt+1=TPtT+Q

从本质上讲,它说给定,关于无数据,我的最佳猜测就是过渡方程式中指定的演变。可以在缺少数据的任何时间段内执行此操作。α + 1αtαt+1

如果数据,那么第一套过滤式的把最好的猜测没有数据,而在添加了“校正”,根据以前的估计有多好。yt


估算数据

一旦将卡尔曼滤波器应用于整个时间范围,就可以对的状态进行最佳估计。这样,通过测量方程即可简单地估算数据。特别是,您只需计算:= 1 2 ... Ťat,Ptt=1,2,,T

y^t=Zat

作为参考,Durbin和Koopman(2012)是优秀的。第4.10节讨论了缺失的观察。

  • Durbin,J.,&Koopman,SJ(2012年)。通过状态空间方法进行时间序列分析(第38号)。牛津大学出版社。

使用更平滑的解决方案进行插补更有意义(因为一个人已经拥有了所有(不丢失)数据,为什么也不要在将来的值中使用该信息)
Juho Kokkala

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.