Estimating Kalman Filter Noise Covariances Q and R
Summary
The document outlines three ways to choose the process and measurement noise covariance matrices used in a discrete Kalman filter. One approach estimates error variances from controlled or observed data: assess measurement error when the underlying quantity is stable, variation in observations when it changes, and uncertainty in a regression estimate. A second approach uses a constant multiple of the identity matrix as a practical guess, with larger values representing greater assumed noise. A third approach estimates parameters by maximum likelihood, using an expectation-maximization routine available in a Kalman filtering package.
The answer gives a compact menu of methods rather than a worked comparison or a prescription for a particular time series. It explicitly cautions that maximum-likelihood optimization is non-convex and may settle at local optima. The document does not provide validation results, detailed implementation guidance, or criteria for selecting among the methods, so estimates should be checked against the model and data at hand.
Key ideas
- Estimate covariance terms from observed errors and variation where the data allow.
- A scaled identity matrix provides a simple initial guess for noise levels.
- Maximum-likelihood estimation with expectation maximization is another option.
- The likelihood optimization can be non-convex and may find only a local optimum.
Tags
Full text
# How to find optimal noise covariance matrices Q & R # How to find optimal noise covariance matrices Q & R I am trying to use the discrete Kalman filter for forecasting and I wonder what is commonly considered as the optimal way of determining the measurement noise covariance constants (Q and R) for a given time series? Do you recommend some approaches based on your research/experience? ## Answer by JPN (score 3, accepted) https://quant.stackexchange.com/a/19546 I recently blogged about this very topic. Essentially, there are 3 ways to estimate Q & R. - approximate calculate variate estimate of error in a controlled environment if z doesn't change, calculate variance estimate of z if z does change, calculate variance of regression estimate of z - guess use some constant multiplied by the identity matrix higher the constant, higher the noise - MLE pykalman's em unfortunately, non-convex problem => local optima Check out the rest of my post here
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.