Skip to content

Compute information-filter likelihoods in measurement space - #345

Open
xixihaha-ha wants to merge 1 commit into
rlabbe:masterfrom
xixihaha-ha:fix/information-likelihood-20261104
Open

xixihaha-ha wants to merge 1 commit into
rlabbe:masterfrom
xixihaha-ha:fix/information-likelihood-20261104

Conversation

@xixihaha-ha

Copy link
Copy Markdown

InformationFilter.update passes the posterior precision matrix in state space to the innovation log-density. When state and observation dimensions differ, this can raise a broadcasting error; even equal dimensions give the wrong likelihood. Related to the covariance concern in #143.

Compute the innovation covariance H @ inv(P_inv) @ H.T + inv(R_inv) for the likelihood. Keep the existing information-form gain/state updates and S representation unchanged. The extra inversions occur only when likelihood computation is enabled, preserving the no-statistics path for a singular prior.

Tests compare state, posterior covariance, log-likelihood and likelihood against KalmanFilter with fewer/equal/more observations than state dimensions, plus a singular-prior update with likelihood disabled.

Validation: 3 regression cases fail on unchanged main, and all 4 pass after the fix. Including existing information-filter tests: 7 passed (Python 3.11 / NumPy 1.26).

AI assistance was used to investigate, implement and test this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant