# Maximum Likelihood estimation and the Kalman filter

I know the Kalman filter recursions and can derive these but what I don't really get is how to estimate the hyper parameters using maximum likelihood.

I understand that when running the Kalman filter we get the prediction error and its variance which can be used the construct the likelihood function.

What I don't really get is the order these steps are done in. Am I supposed to:

Method 1

1) Run the Kalman filter given arbitrary starting values and obtain the likelihood function.

2) Maximize the likelihood function wrt to the hyper parameters of the model.

OR

Method 2

1) Estimate the hyper-parameters of the state space model using maximum likelihood.

2) Run the Kalman filter with the hyper-parameters set at these estimates.

I found this question which answers what I need: LogLikelihood Parameter Estimation for Linear Gaussian Kalman Filter. Here the hyper parameters are estimated from the likelihood function and that is the same as the algorithm on p. 8 top in these lecture notes specifies. However, in the same notes it is written (p. 10 mid): "Given a set of optimal parameter values, $\theta_{ML}$, it is now worth to explore the paths of unobserved components...".

Is the correct way to conduct the analysis the following?

Method 3

1) Run the Kalman filter given arbitrary starting values and obtain the likelihood function.

2) Maximize the likelihood function wrt to the hyper parameters of the model.

3) Run the Kalman filter again using the ML estimates obtained in step 2). Use these state estimates in the following analysis?

• Method 2 seems the most reasonable to me: first estimate the parameters of the model by maximum likelihood (as explained in the post that you linked); then, given the optimal set of parameters found by the optimization algorithm, run the Kalman filter or smoother to get an estimate of the state vector. – javlacalle Jun 7 '16 at 6:58
• I'm not sure what you are referring with hyper-parameters. In the context of the model defined in section 2.1 of the document that you link, I would distinguish two elements: 1) the parameters to be estimated by ML, i.e., the variances ($\sigma^2_v$, $\sigma^2_w$, $\sigma^2_e$), and 2) the state vector (latent variables or unobserved components), which are the trend $n_t$, the stochastic drift $g_t$ and the cycle $x_t$. The estimates of the latter should be obtained after having estimated the variances by ML. – javlacalle Jun 7 '16 at 6:59
• Thanks for the comment. By hyper-parameters I mean the parameters determining the stochastic properties of the state vector and the variance parameter. I think method 3 is right (correct me if I am wrong). One sets initial values. Runs the Kalman filter and obtains a likelihood function. Uses these parameter estimates instead of the initial values and runs the Kalman filter again. This process is then continued until convergence. Is this correct? – Plissken Jun 15 '16 at 20:00
• I assume you are updating the parameters at each stage by means of an optimization algorithm, in that case the process seems reasonable to me. – javlacalle Jun 17 '16 at 20:20