Skip to content

Add partial and complete missing emission support in LGSSM filtering #406

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

hylkedonker
Copy link

This pull requests adds support for the inclusion of missing measurements/emissions/observations $y_t$ in the Kalman filter dynamax.linear_gaussian_ssm.lgssm_filter. This PR covers:

  • Fully missing measurements. For example, $y_t = [y_{t1}, y_{t2}]^T$ where both elements are missing.
  • Partial missing observations, where for example $y_{t1}$ is missing, but $y_{t2}$ is observed.
  • Includes comprehensive unit tests.

This PR partially addresses issues #301, #330, #399

Implementation details
Let $P_{t+}$ by the operator that projects onto the observed values of $y_t$. Then the update step of the Kalman filter is modified by replacing:

  • $H_t \rightarrow P_{t+} H_t$,
  • $R_t \rightarrow P_{t+} R_t P_{t+}$.

Mathematical details are provided in the comment of issue #399.

In addition, the log-likelihood term is adjusted accordingly, e.g., $ \int \mathrm{d} y_{t1} p(y_{t1}, y_{t2}|y_{1:t-1})= p(y_{t2}|y_{1:t-1})$ while keeping the shape of the covariance matrices static (to prevent recompilation).

Scope
Not yet included are the corresponding implementations in:

  • parallel_lgssm_filter
  • lgssm_info_filter

Which I consider out of scope of this PR.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant