Preliminares: Filtrado de Kalman :
Los filtros de Kalman operan sobre modelos de espacio de estado de la forma (hay varias maneras de escribirlo; ésta es una fácil basada en Durbin y Koopman (2012) (todo lo que sigue se basa en ese libro, que es excelente):
$$ \begin{align} y_t & = Z \alpha_t + \varepsilon_t \qquad & \varepsilon_t \sim N(0, H) \\ \alpha_{t_1} & = T \alpha_t + \eta_t & \eta_t \sim N(0, Q) \\ \alpha_1 & \sim N(a_1, P_1) \end{align} $$
donde $y_t$ es la serie observada (posiblemente con valores perdidos) pero $\alpha_t$ es totalmente inobservable. La primera ecuación (la ecuación de la "medición") dice que los datos observados están relacionados con los estados no observados de una manera determinada. La segunda ecuación (la ecuación de "transición") dice que los estados no observados evolucionan con el tiempo de una manera determinada.
El filtro de Kalman opera para encontrar estimaciones óptimas de $\alpha_t$ ( $\alpha_t$ se supone que es Normal: $\alpha_t \sim N(a_t, P_t)$ por lo que lo que hace el filtro de Kalman es calcular la media condicional y la varianza de la distribución para $\alpha_t$ condicionado a las observaciones hasta el momento $t$ ).
En el caso típico (cuando se dispone de observaciones) el filtro de Kalman utiliza la estimación del estado actual y la observación actual $y_t$ para hacer lo mejor que pueda para estimar el siguiente estado $\alpha_{t+1}$ de la siguiente manera:
$$ \begin{align} a_{t+1} & = T a_t + K_t (y_t - Z \alpha_t) \\ P_{t+1} & = T P_t (T - K_t Z)' + Q \end{align} $$
donde $K_t$ es la "ganancia de Kalman".
Cuando no hay una observación, el filtro de Kalman sigue queriendo calcular $a_{t+1}$ y $P_{t+1}$ de la mejor manera posible. Desde $y_t$ no está disponible, no puede hacer uso de la ecuación de medición, pero puede seguir utilizando la ecuación de transición . Así, cuando $y_t$ falta, el filtro de Kalman calcula en su lugar:
$$ \begin{align} a_{t+1} & = T a_t \\ P_{t+1} & = T P_t T' + Q \end{align} $$
Esencialmente, dice que dado $\alpha_t$ Mi mejor suposición en cuanto a $\alpha_{t+1}$ sin datos es sólo la evolución especificada en la ecuación de transición. Esto puede realizarse para cualquier número de periodos de tiempo con datos ausentes.
Si hay es datos $y_t$ Entonces, el primer conjunto de ecuaciones de filtrado toma la mejor estimación sin datos, y añade una "corrección", basada en lo buena que era la estimación anterior.
Imputación de datos :
Una vez aplicado el filtro de Kalman a todo el rango de tiempo, se tienen estimaciones óptimas de los estados $a_t, P_t$ para $t = 1, 2, \dots, T$ . La imputación de datos es entonces sencilla a través de la ecuación de medición. En concreto, basta con calcular:
$$\hat y_t = Z a_t $$
En cuanto a una referencia, Durbin y Koopman (2012) es excelente; la sección 4.10 analiza las observaciones que faltan.
- Durbin, J., & Koopman, S. J. (2012). Análisis de series temporales por estado space methods (nº 38). Oxford University Press.
0 votos
Le puede interesar este puesto . Ofrece un ejemplo basado en la representación del espacio de estados de un modelo ARIMA para imputar los valores perdidos mediante el filtro de Kalman.
0 votos
@javlacalle gracias, ya conocía este post y es un gran ejemplo para una implementación concreta. Pero me interesa más bien el fondo teórico.
0 votos
Te sugiero esta implementación de python simple stackoverflow.com/a/63630858/10375049