卡尔曼滤波器的滞后协方差平滑器

时间:2019-02-21 11:24:18

标签: python numpy time-series kalman-filter pykalman

我正在学习Kalman滤波器,发现Lag-One协方差平滑器的方程及其在pykalman中的实现是不同的。我不知道为什么。

在Robert H.Shumway,David S.Stoffer的书中,“时间序列分析及其 应用程序(第四版)。等式在第300页上给出

enter image description here

enter image description here

我可以找到的其他文献中的公式也是这种形式。

但是在pykalman(https://github.com/pykalman/pykalman/blob/master/pykalman/standard.py)中,他们以不同的方式进行了计算。

def _smooth_pair(smoothed_state_covariances, kalman_smoothing_gain):
    n_timesteps, n_dim_state, _ = smoothed_state_covariances.shape
    pairwise_covariances = np.zeros((n_timesteps, n_dim_state, n_dim_state))
    for t in range(1, n_timesteps):
        pairwise_covariances[t] = (
            np.dot(smoothed_state_covariances[t],
                   kalman_smoothing_gain[t - 1].T)
        )
    return pairwise_covariances

基本上,它使用一个非常简单的公式 enter image description here

事实上,我在python中都尝试过,结果略有不同。我找不到它们之间的明显联系,也找不到任何文献中的第二个方程。有人可以给我一些提示吗?

0 个答案:

没有答案