STL en series temporales con valores faltantes para la detección de anomalías

12

Estoy tratando de detectar valores anómalos en una serie temporal de datos climáticos con algunas observaciones faltantes. Al buscar en la web encontré muchos enfoques disponibles. De ellos, la descomposición stl parece atractiva, en el sentido de eliminar la tendencia y los componentes estacionales y estudiar el resto. Lectura STL: Una temporada-Trend descomposición procedimiento basado en el loess , stlparece ser flexible en la determinación de los parámetros para la asignación de la variabilidad, no afectado por los valores extremos y posibles de aplicar a pesar de los valores perdidos. Sin embargo, tratando de aplicarlo R, con cuatro años de observaciones y definiendo todos los parámetros de acuerdo con http://stat.ethz.ch/R-manual/R-patched/library/stats/html/stl.html , encuentro error:

"time series contains internal NAs"(cuando na.action=na.omit) y
"series is not periodic or has less than two periods"(cuando na.action=na.exclude).

He comprobado que la frecuencia está definida correctamente. He visto preguntas relevantes en blogs, pero no encontré ninguna sugerencia que pudiera resolver esto. ¿No es posible aplicar stlen una serie con valores faltantes? Soy muy reacio a interpolarlos, ya que no quiero introducir (y en consecuencia detectar ...) artefactos. Por la misma razón, no sé lo aconsejable que sería utilizar enfoques ARIMA en su lugar (y si faltan valores aún sería un problema).

Comparta si conoce una forma de aplicar stluna serie con valores faltantes, o si cree que mis opciones no son metodológicamente acertadas, o si tiene alguna sugerencia mejor. Soy bastante nuevo en el campo y abrumado por los montones de (aparentemente ...) información relevante.

Effie
fuente
Estoy teniendo el mismo problema. El método STL debería poder completar los valores faltantes a través de LOESS, pero esta implementación de R no parece hacerlo.
jf328

Respuestas:

5

Los modelos ARIMA incorporan fácilmente variables ficticias para tratar los valores faltantes. Estos se llaman indicadores de pulso. La metodología es sencilla y está documentada en http://www.unc.edu/~jbhill/tsay.pdf . En general, el método extrae de la información de la serie residual actual sobre pulsos, cambios de nivel, pulsos estacionales y tendencias de tiempo local.

IrishStat
fuente
¡Gracias por la sugerencia y el artículo muy interesante!
effie
3

Según @Julius en esta publicación, es posible usar stlcon na.approx, desde el zoopaquete, el uso stl(x, na.action = na.approx, ...). Esto hace algún tipo de interpolación .

Robert
fuente
0

También puede consultar el stlpluspaquete de Hafen . Los detalles están en su tesis.

Puede instalarlo desde CRAN con

install.packages("stlplus")

o directamente desde github con

devtools::install_github("hafen/stlplus").
sfjac
fuente