线性高斯卡尔曼滤波器的LogLikelihood参数估计


13

我已经编写了一些代码,可以对n维状态向量进行线性高斯状态空间分析(使用许多不同的Kalman型滤波器[Information Filter等])。筛选器效果很好,我得到了一些不错的输出。但是,通过对数似然估计进行参数估计会使我感到困惑。我不是统计学家,而是物理学家,所以请保持友好。

让我们考虑线性高斯状态空间模型

yt=Ztαt+ϵt,
αt+1=Ttαt+Rtηt,

其中是我们的观察向量,我们在时间步处的状态向量。粗体为状态空间模型的变换矩阵,这些变换矩阵是根据所考虑的系统的特性设置的。我们还有ytαtt

η Ñ d 0 Q α 1Ñ d 一个1P 1

ϵtNID(0,Ht),
ηtNID(0,Qt),
α1NID(a1,P1).

其中。现在,我已经通过猜测初始参数和方差矩阵和来推导并实现了该通用状态空间模型的Kalman滤波器的递归,我可以生成图喜欢H 1 Q 1t=1,,nH1Q1

卡尔曼滤波

其中的点是100年1月的尼罗河水位,线是“卡拉姆估计”状态,虚线是90%的置信度。

现在,对于此一维数据集,矩阵和分别只是标量和。所以现在我想使用卡尔曼滤波器的输出和对数似然函数为这些标量获取正确的参数Q σ ε σ ηHtQtσϵση

logL(Yn)=np2log(2π)12t=1n(log|Ft|+vtTFt1vt)

其中是状态误差,是状态误差方差。现在,这是我感到困惑的地方。从卡尔曼滤波器中,我可以获得制定所需的所有信息,但这似乎使我无法更接近地计算和的最大可能性。我的问题是如何使用对数似然法和上述方程式计算的最大可能性算法崩溃现在对我来说就像一杯冰镇啤酒...˚F 大号σ ε σ η σ ε σ ηvtFtLσϵσησϵση

谢谢你的时间。


注意。对于一维情况,和。这是单变量局部模型。 ħ = σ 2 ηHt=σϵ2Ht=ση2

Answers:


11

σϵ2ση2νtFtlogL(Yn)

换句话说,您可以将卡尔曼滤波器视为计算和隐式函数的一种方式。然后,您唯一需要做的就是将计算结果打包到一个函数或子例程中,然后将该函数处理为优化例程,例如在R中。该函数应该接受和作为输入 并返回 。 σ 2 η σ 2 ε σ 2 η日志大号ÿ Ñσϵ2ση2optimσϵ2ση2logL(Yn)

R中的某些软件包(例如dlm)可以为您做到这一点(请参见实例函数dlmMLE)。


感谢您的回复。我很欣赏我似乎拥有显式计算对数似然性所需的所有组件,但是我似乎所有的参考文献都建议我将和作为对数似然函数中的未知数,并使用牛顿将其最大化型方法?这就是令我困惑的东西;“相对于未知状态向量,对数似然性在数值上最大化”-怎么样?σ ησϵση
MoonKnight 2014年

可能性的计算不是那么明确,因为和没有明确出现在的表达式中。相反,它们通过和影响可能性。因此,您需要运行Kalman滤波器为和每对值计算。一旦以函数形式进行编码,就可以将其处理为牛顿类型(或任何通用)最大化函数,仅此而已。σ η日志大号Ý Ñν ˚F 日志大号Ý Ñσ ε σ ησϵσηlogL(Yn)νtFtlogL(Yn)σϵση
F. Tusell 2014年

1
我碰巧有详细的代码(在R中)显示了如何针对Nile数据精确地执行此操作。我用它作为我的学生的例证。不幸的是,它是西班牙语的,但是我希望代码很清楚(如果没有,我可以翻译注释)。您可以从et.bs.ehu.es/~etptupaf/N4.html中获取此示例。
F. Tusell 2014年

这非常有帮助。非常感谢你花时间陪伴。您的评论很有帮助!有时很难“以树木为中心”,而只需要简单地进行简单解释就可以了……再次感谢。
MoonKnight 2014年

我还想问一下我是否可以查看您进行状态平滑递归的页面。您的平滑处理看起来比我的平滑,我不确定为什么!?我试图从您的网站上找到它,但找不到所需的页面...
MoonKnight 2014年
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.