When I started reading about Kalman filter it thought that it is a special case of ARIMA model (namely ARIMA(0,1,1)). But actually it seems that situation is more complicated. First of all, ARIMA can be used for prediction and Kalman filter is for filtering. But aren’t they closely related?
What is the relationship between ARIMA and Kalman filter? Is one using another? Is one special case of another?
ARIMA is a class of models. These are stochastic processes that you can use to model some time series data.
There is another class of models called linear Gaussian state space models, sometimes just state space models. This is a strictly larger class (every ARIMA model is a state space model). A state space model involves dynamics for an unobserved stochastic process called the state, and a distribution for your actual observations, as a function of the state.
The Kalman filter is an algorithm (NOT a model), that is used to do two things in the context of state space models:
Compute the sequence of filtering distributions. This is the distribution of the current state, given all observations until now, for each time period. This gives us an estimate of the unobservable state in a way that doesn’t depend on future data.
Compute the likelihood of the data. This allows us to perform maximum likelihood estimation and fit the model.
So, “ARIMA” and “Kalman filter” are not comparable because they are not the same kind of object at all (model vs algorithm). However, because the Kalman filter can be applied to any state space model, including ARIMA, it is typical in software to use the Kalman filter to fit an ARIMA model.