Я изучаю Kalman Filter и нахожу, что уравнения для Lag-One Covariance Smoother и его реализация в pykalman отличаются.Я не знаю почему.
В книге Роберта Х. Шамвея, Дэвида С. Стоффера, «Анализ временных рядов и его приложения» (Четвертое издание).уравнение приведено на странице 300
![enter image description here](https://i.stack.imgur.com/etuzw.gif)
![enter image description here](https://i.stack.imgur.com/G6Wb3.gif)
Формула в другой литературе, которую я мог найтитакже в этой форме.
Но в 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](https://i.stack.imgur.com/Riorh.gif)
На самом деле, я попробовал оба в python, и результаты немного отличаются. Я не мог найти очевидную связь между ними, и я не мог найти второе уравнение в любой литературе.дайте мне несколько советов?