7 votos

Detección de valores atípicos en el análisis de series temporales, ¿debo preprocesar los datos o no?

Mi pregunta se basa en un entrada anterior sobre la detección de valores atípicos en series temporales genéricas, y concretamente sobre la respuesta proporcionada por el siempre genial Rob H.

Trabajo para una pequeña empresa manufacturera que actualmente se encarga de este asunto, es decir, de detectar valores atípicos en las series temporales de datos de ventas, empleando un procedimiento de software automatizado (dudoso).

Creo que este tipo de enfoque es cuestionable en el mejor de los casos y, la mayoría de las veces, no estoy contento con los resultados que obtengo. Por lo tanto, me gustaría "comprobar" la salida de nuestro software utilizando algún método alternativo.

La idea de Rob parecía razonable, sencilla y fácil de aplicar, así que decidí probarla. La pregunta es: ¿qué pasa si mis series temporales no son "genéricas"?

La descomposición Stl pone de manifiesto una fuerte estacionalidad y una tendencia variable en mis datos:

enter image description here

(Por cierto, he utilizado stl(x,s.window="periodic") como sugirió Rob, pero IMHO stl(x,s.window="periodic",robust=TRUE) sería una mejor opción ya que la detección de valores atípicos es el tema que nos ocupa. Además, no estoy muy seguro de que el s.window="periodic" parte, he intentado experimentar un poco con diferentes valores, pero no sé cómo interpretar los resultados. Tal vez alguien pueda indicarme la dirección correcta).

Volviendo a mi pregunta, al ser los míos datos de ventas, el patrón estacional está (o creo que está) muy afectado por los efectos del calendario. También tengo razones para creer que el gran cambio de nivel en 2009 se debe a la crisis financiera y no tiene nada que ver con la tendencia.

¿Qué hago aquí? ¿Debo dejar que el modelo se encargue de esto, o debo preprocesar los datos? ¿Realizo un ajuste de días laborables y reajusto (¿existe tal cosa?) los datos anteriores a 2009 y posteriores a 2009, o dejo que la descomposición STL haga el trabajo?

Podría escribir otras 1000 líneas, pero creo que esto debería ser suficiente para transmitir el mensaje. Me disculpo por el WOT y por mi mal inglés. También espero no haber roto demasiadas reglas del foro...

¡Espero que alguien por ahí pueda ayudar!

8voto

Rick Minerich Puntos 2407

Un reflectómetro de dominio temporal es la herramienta que necesita. Sin embargo, cuesta mucho dinero. Si puedes pedir prestado un o'scope decente, eso es la mitad de la batalla. La única otra cosa que necesitas es un generador de pulsos. Enviando un pulso en la línea y mirando el pulso con el o'scope, usted puede decir la condición de la línea. Se pueden calcular los cortocircuitos, las aperturas, la longitud del cable, etc. Resulta que hay un artículo en la revista Elektor de diciembre de 2011 sobre cómo hacer esto, también incluye planes para un generador de pulso barato.

4voto

Owen Fraser-Green Puntos 642

El problema/oportunidad es identificar el modelo ARIMA o estacional ficticio subyacente y aumentarlo según sea necesario. Esta serie en particular presenta una cadena / dummies estacionales dominantes en comparación con una estructura ARIMA estacional. A continuación, identificamos tanto los valores inusuales, ya sean pulsos, pulsos estacionales, cambios de nivel o tendencias temporales locales, como la estructura autorregresiva necesaria para generar "ruido". Se identificaron dos desplazamientos de nivel en el periodo 50 (2009/febrero) y en el periodo 24 (2006/diciembre) o en torno a ellos. Los datos sugerían el siguiente modelo enter image description here . Los valores inusuales, es decir, los PULSOS enter image description here se enumeran aquí. Un gráfico muy ilustrativo es el de la limpieza frente a la realidad que se muestra aquí enter image description here . Por último, el gráfico de ajuste/realidad/previsión es un buen resumen ( pero ocupado ) enter image description here . El gráfico de previsión es enter image description here . Las estadísticas finales del modelo se muestran en las tres últimas imágenes y enter image description here y enter image description here y enter image description here . Los residuos del modelo son razonablemente aleatorios enter image description here sin que quede ningún auto enter image description here estructura correlativa . Espero que este pequeño ejemplo ayude a todos. Soy uno de los desarrolladores del software que he utilizado aquí. Hay otros productos disponibles en el mercado que ofrecen algo similar.

3voto

Senseful Puntos 116
  • La tendencia suave debería hacer frente a los efectos económicos sin problemas.
  • El uso de robust=TRUE en stl tiene sentido aquí (y he cambiado mi función original para hacer lo mismo).
  • A menos que tengas más de diez años de datos, yo me quedaría con la estacionalidad periódica. Es poco probable que cambie lo suficientemente rápido como para detectarla con series temporales más cortas.
  • El preprocesamiento de los datos de los días laborables tiene sentido, ya que elimina las causas conocidas de variabilidad.

Te sugiero que pruebes el método stl y veas en qué casos da resultados muy diferentes a los de tu método actual. A continuación, analiza esos casos y comprueba qué método da los resultados más sensatos.

Yo no utilizaría la ruta ARIMA, ya que no es ni de lejos tan robusta como la stl.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X