Uso de filtros Kalman para imputar valores perdidos en series temporales

12

Estoy interesado en cómo se pueden usar los filtros Kalman para imputar valores faltantes en los datos de series temporales. ¿También es aplicable si faltan algunos puntos de tiempo consecutivos? No puedo encontrar mucho sobre este tema. Cualquier explicación, comentario y enlace son bienvenidos y apreciados.

GS9
fuente
Te puede interesar esta publicación . Da un ejemplo basado en la representación de espacio de estado de un modelo ARIMA para imputar valores perdidos por medio del filtro de Kalman.
javlacalle
@javlacalle gracias, ya conocía esta publicación y es un gran ejemplo para una implementación concreta. Pero estoy bastante interesado en los antecedentes teóricos.
GS9

Respuestas:

9

Preliminares: filtrado de Kalman :

Los filtros Kalman operan en modelos de espacio de estado de la forma (hay varias formas de escribirlo; esta es fácil basada en Durbin y Koopman (2012) ; todo lo siguiente se basa en ese libro, que es excelente):

yt=Zαt+εtεtN(0,H)αt1=Tαt+ηtηtN(0,Q)α1N(a1,P1)

donde es la serie observada (posiblemente con valores faltantes) pero se completo. La primera ecuación (la ecuación de "medición") dice que los datos observados están relacionados con los estados no observados de una manera particular. La segunda ecuación (la ecuación de "transición") dice que los estados no observados evolucionan con el tiempo de una manera particular.ytαt

El filtro de Kalman funciona para encontrar estimaciones óptimas de ( se supone que es Normal: , por lo que lo que realmente hace el filtro de Kalman es calcular la media condicional y la varianza de la distribución para condicional en observaciones hasta el tiempo ).αtαtαtN(at,Pt)αtt

En el caso típico (cuando hay observaciones disponibles), el filtro de Kalman usa la estimación del estado actual y la observación actual para hacer lo mejor posible para estimar el siguiente estado , de la siguiente manera:ytαt+1

at+1=Tat+Kt(ytZαt)Pt+1=TPt(TKtZ)+Q

donde es la "ganancia de Kalman".Kt

Cuando no hay una observación, el filtro de Kalman todavía quiere calcular y de la mejor manera posible. Como no está disponible, no puede hacer uso de la ecuación de medición, pero aún puede usar la ecuación de transición . Por lo tanto, cuando falta , el filtro de Kalman calcula en su lugar:at+1Pt+1ytyt

at+1=TatPt+1=TPtT+Q

Esencialmente, dice que dado , mi mejor suposición en cuanto a sin datos es solo la evolución especificada en la ecuación de transición. Esto se puede realizar para cualquier cantidad de períodos de tiempo con datos faltantes.αtαt+1

Si no es de datos , a continuación, el primer conjunto de ecuaciones de filtrado tomar la mejor conjetura sin datos, y añadir una "corrección" en, sobre la base de lo buena que era la estimación anterior.yt


Datos de imputación :

Una vez que el filtro de Kalman se ha aplicado a toda la gama de tiempo, usted tiene estimaciones óptimas de los estados para . Imputar datos es simple a través de la ecuación de medición. En particular, solo calcula:at,Ptt=1,2,,T

y^t=Zat

En cuanto a una referencia, Durbin y Koopman (2012) son excelentes; la sección 4.10 discute las observaciones faltantes.

  • Durbin, J. y Koopman, SJ (2012). Análisis de series de tiempo por métodos de espacio de estado (No. 38). Prensa de la Universidad de Oxford.
cfulton
fuente
Usar la solución más fluida tendría más sentido para imputar (dado que uno ya tiene todos los datos (no faltantes), ¿por qué no usar la información en los valores futuros también?)
Juho Kokkala
0

El ejemplo en la publicación que señala javlacalle en su comentario presenta puntos de tiempo perdidos consecutivos. También podría estar interesado en intervalos alrededor de los valores imputados (pronosticados en la muestra), cuyo cálculo aparece en este documento del Espacio de Estado , en la sección 2.1.

Otro artículo que podría ser interesante es este .

Wayne
fuente