# Implementing ARMA Log Likelihood with the Kalman Filter Algorithm

A popular algorithm to determine the (complex) log likelihood function of an ARMA(p,q) process involves generating it through the use of a state-space model and the Kalman Filter.

I started reading Maximum Likelihood and the Kalman Filter but the question isn't clear when it comes to the full implementation of it as it would exist in say, R. Hamilton (1994) doesn't make it abundantly clear how the actual process proceeds. He gives the update equations and the log likelihood function (parameterized by the matrices in the kalman filter) but doesn't make it clear what to do with them.

From what I understand from reading, we can make a multivariate normal guarantee on the kalman filter of the ARMA process - as a result our likelihood function will have parameters of the various matrices of the kalman filter, and we can feed these into the likelihood function to get the result.

I also understand that the recursions of a kalman filter imply the full ARMA(p,q) model.

My question is this:

It is unclear to me what I need to do to properly maximize the log likelihood equations. What do I take the derivative of to maximize? It seems I have two options - the kalman update equations or the log likelihood function parameterized by the matrices of the kalman filter. I'm unsure how to maximize the result of a kalman filter in practice - in theory it seems straightforward.

Thank you!

• The goal is to maximize the log-likelihood function. The likelihood depends on the prediction errors and their variances; this is where the Kalman filter comes into play since it can be used to compute them and therefore to evaluate the likelihood function at a given set of parameter values. – javlacalle Jan 6 '17 at 17:17
• I would recommend you have a look at related posts linked on the right-hand-side of this page. For example, this one, including the comments therein. This may help you to get a better understanding or to reformulate you question. – javlacalle Jan 6 '17 at 17:19
• @javlacalle Thank you for your reply. Later tonight I will post the answer to my question that I figured out a day or so ago. The question wasn't written so clearly - I apologize. – user124589 Jan 7 '17 at 0:52
• Later tonight never came? – Richard Hardy Mar 20 '17 at 14:21
• @RichardHardy Funny enough this took me down a massive rabbit hole. Later tonight never came because I've been working on implementing a Kalman Filter solution for it. It's far more complicated than I had initially expected. I apologize for not responding. – user124589 Mar 24 '17 at 22:49