# State filtering

### Kalman and friends

Kalman-Bucy filter and variants, recursive estimation, predictive state models, Data assimilation. A particular sub-field of signal processing for models with hidden state.

In statistics terms, the state filters are a kind of online-updating hierarchical model for sequential observations of a dynamical system where the random state is unobserved, but you can get an optimal estimate of it based on incoming measurements and known parameters.

A unifying feature of all these is by assuming a sparse influence graph between observations and dynamics, that you can estimate behaviour using efficient message passing.

This is a twin problem to optimal control.

## Linear systems

In Kalman filters per se you are usually concerned with multivariate real vector signals representing different axes of some telemetry data problem. In the degenerate case, where there is no observation noise, you can just design a linear filter.

The classic Kalman filter (Kalm60) assumes a linear model with Gaussian noise, although it might work with not-quite Gaussian, not-quite linear models if you prod it. You can extend this flavour to somewhat more general dynamics.

If you are doing telemetry then you probably know a priori that your model is not linear in this case, and extensions are advisable.

(NB I’m conflating linear observation and linear process models here, but this is fine for a link list, I think.)

## Non-linear dynamical systems

Cute exercise: you can derive the analytic Kalman filter for any noise and process dynamics of with Bayesian conjugate, and this leads to filters of nonlinear behaviour. Multivariate distributions are a bit of a mess for non-Gaussians, though, and a beta-Kalman filter feels contrived.

Upshot is, the non-linear extensions don’t usually rely on non-Gaussian conjugate distributions and analytic forms, but rather do some Gaussian/linear approximation, or use randomised methods such as particle filters.

For some example of doing this in Stan see Sinhrks’ statn-statespace.

## Discrete state Hidden Markov models

TBD. Viterbi algorithm.

## Other interesting state filters

Note that state filters can also do approximate gaussian process regression, apparently. See Särkka’s work.

## State filter inference

How about learning the parameters of the model generating your states? Ways that you can do this in dynamical systems include basic linear system identification, general system identification, . But can you identify the parameters (not just hidden states) with a state filter? Yes, see recursive estimation.