Quantitative finance collector
C++ Matlab VBA/Excel Java Mathematica R/Splus Net Code Site Other
Apr 15

Kalman Filter Example

Posted by abiao at 16:25 | Code » VBA/Excel | Comments(0) | Reads(31989)
The kalman filter is a time series estimation algorithm that is mainly used combined with maximum likelihood approach to estimate parameters for given data. Compared with pure maximum likelihood, which typically assumes that the data series is observed without errors, and obtains the state variables by inversion, Kalman filter assumes that all data is observed with measurement errors, which is one of the big reasons why it becomes more and more popular in economics and finance, as many models in these fields depend on data that are either non-observable, for example, bond prices are observable but interest rates are not; energy future prices are easily observed but underlying assets are not, etc.; or subject to noise, such as due to bid-ask spreads.
Open in new window
There are two basic equations of a Kalman filter: the measurement equation and the transition equation, as the names suggest, the measurement equation relates an unobserved variable (such as interest rates) to an observable variable (such as bond prices), and the transition equation allows the unobserved variable to change over time, for example, interest rates follow a Cox Ingersoll Ross (CIR) process. Essentially Kalman filter is a recursive algorithm, it starts with initial values for the state variables and a measure of the certainty of the guess, and then use these initial values to predict the value of the measurement equation, since the variables in the measurement equation are observed, we can calculate the prediction error, together with a kalman gain factor, to update the values in the transition equation, repeat the process for the next time period and finally we are able to estimate the parameters values by maximum likelihood. The following steps outline the specific procedures of a kalman filter example:

Step 1: writing down the measurement equation and transition equation, initializing the state vector;
Step 2: forecasting the measurement equation given the initial values;
Step 3: updating the inference about the state vector incorporating kalman gain matrix and the prediction error;
Step 4: forecasting the state vector of the next time period conditioning on the updated values of the previous period;
Step 5: calculating the log-likelihood function under a certain distribution assumption and maximize the log-likelihood, usually a Gaussian distribution is applied.


For a detailed Kalman filter example in excel, please read the paper "A simplified approach to understanding the kalman filter technique" for detail, I also wrote a sample tutorial file trying to mimic the results but failed, possible reasons are poor performance of solver in excel and the small simulated sample periods. Interested readers can choose to download a Kalman filter toolbox for Matlab.


Tags:
Add a comment
Emots
Enable HTML
Enable UBB
Enable Emots
Hidden
Remember
Nickname   Password   Optional
Site URI   Email   [Register]