¿Cuál es un buen algoritmo para interpolar datos de series temporales faltantes?

Si su serie temporal varía muy lentamente o es suave, también se conoce un filtro de paso bajo. los promedios móviles funcionan lo suficientemente bien. Sin embargo, no podrá recuperar ninguna información de “alta frecuencia” en la serie de tiempo original. Sin embargo, si se trata de series de tiempo financieras, datos geofísicos o EEG, sus datos rara vez son uniformes; Por lo tanto, es preferible utilizar métodos que extraigan más información.

Métodos de suavizado de kernel: los métodos de suavizado de kernel buscarán otros patrones en las series de tiempo y puntos promedio juntos solo cuando sus vecindarios se parezcan entre sí. El “núcleo” realiza la correspondencia relevante y pondera diferentes muestras según su similitud. Para comenzar, es posible que desee utilizar los estimadores Parzen-Rosenblatt o Nadaraya-Watson.

Splines para interpolación : otra alternativa al filtrado de paso bajo, es asumir que los datos continuos subyacentes se modelan mejor como una combinación de polinomios por partes de diferentes órdenes. La interpolación lineal interpolaría sus datos suponiendo que la relación en el intervalo de dos muestras es un polinomio de primer orden (como una línea), mientras que la interpolación cúbica supone que un polinomio de tercer orden describiría el intervalo entre dos muestras. En general, un polinomio de orden superior es más preciso y le ayuda a recuperar una versión más limpia y suave de su serie. [2a-b] examina diferentes métodos de interpolación y compara métodos de interpolación lineal (promedio móvil), cuadrático y cúbico en imágenes médicas. Pero lo mismo se aplicaría a las series temporales también. Una ventaja de la base de spline es que puede manejar un espaciado no uniforme de muestras.

Estimación de la señal utilizando transformadas de wavelet : la base de wavelet es óptima tanto para las singularidades puntuales aproximadas en una serie de tiempo como para la estimación estocástica de tales señales. Este es probablemente el más difícil de manejar si no está familiarizado con el análisis multirresolución y wavelet, pero definitivamente es el más deseable si la precisión es importante.

Las implementaciones para todo esto se pueden encontrar en el paquete R para series de tiempo [4]

[1] Kernel Regression Smoothing of Time Series http://onlinelibrary.wiley.com/d…
[2a] http://ieeexplore.ieee.org/xpls/…
[2b] http://ieeexplore.ieee.org/xpls/…
[3] Métodos Wavelet para series temporales http://books.google.com/books?id…
[4] http://cran.r-project.org/web/vi…

De los documentos que leí, MICE (imputación múltiple por ecuaciones en cadena) se considera el estado del arte para la imputación de propósito general, ya que hace uso de toda la información posible disponible y le da un intervalo de confianza en su imputación. Algunas personas lo usan en las competencias de Kaggle, Manuel Amunategui, y parece producir buenos resultados (aunque usarlo en datos de texto es muy, muy poco aconsejable. No está destinado a eso … 😀)
En el curso de estadística en mi escuela, EM (maximización de expectativas) se enseña como una técnica para tratar con datos faltantes.
Una buena encuesta sobre estas técnicas: Página en ox.ac.uk
Por otra parte, creo que depende de sus aplicaciones. El mío está en análisis médicos / económicos, así que esto es solo mis 2 centavos.

Los métodos sugeridos anteriormente no son paramétricos, ya que no suponen un proceso subyacente de generación de datos. Si puede asumir el proceso, puede usar métodos de probabilidad para calibrar el proceso y luego imputar los valores faltantes con sus medias estimadas.
Un enfoque de probabilidad podría coincidir con algunos de los métodos anteriores para procesos simples de generación de datos, pero este no es el caso en general.

La interpolación se usa típicamente como paso de preprocesamiento. No como un objetivo en sí mismo. Dependiendo de la cantidad de puntos de datos que faltan, el promedio entre el último valor observado y el siguiente valor observado será una muy buena aproximación. En realidad, puede probar el rendimiento de diferentes algoritmos de “interpolación” eliminando puntos de datos al azar, aplicando su algoritmo de interpolación y calculando el error de interpolación.