Function filter and tolerance for the forecast uncertainty threshold

2 次查看(过去 30 天)
Hi, I would like to better understand how does filter function regularises the forecast uncertainty matrix to avoid singularity? (https://nl.mathworks.com/help/econ/dssm.filter.html?searchHighlight=singular%20kalman%20&s_tid=srchtitle_singular%20kalman%20_6#buzf397-3)
The function allows to specify the tolerance for the procedure, which if activated, applies the correction. I was wondering does it use cholesky inversion for the correction or what? I tried to look into the function but it says that is in-built and does not show the code.
I appreciate your help.

回答(1 个)

Yash
Yash 2023-11-21
Hi Zym,
The filter function in MATLAB's System Identification Toolbox uses a Kalman filter to estimate the state of a dynamic system based on noisy measurements. The Kalman filter involves computing the inverse of a covariance matrix, which can become singular if the matrix is ill-conditioned or poorly conditioned. To avoid this issue, the filter function regularizes the covariance matrix by adding a small amount of noise to the diagonal elements. This is known as "covariance inflation" or "covariance regularization". The amount of noise added is controlled by the Tolerance parameter, which specifies the maximum allowable ratio of the largest to smallest eigenvalue of the covariance matrix. If this ratio exceeds the tolerance, the diagonal elements of the covariance matrix are increased until the ratio falls below the tolerance.
The filter function does not use Cholesky inversion for the correction. Instead, it uses a modified version of the Kalman filter that incorporates the covariance inflation. The exact details of the algorithm are not disclosed in the documentation, as it is an in-built function.
Hope this helps!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by