16 votos

El uso de la R previsión paquete con falta de valores y/o irregular de la serie de tiempo

Estoy impresionado por el R forecast paquete, así como por ejemplo, el zoo paquete irregulares, series de tiempo y la interpolación de los valores perdidos.

Mi aplicación es en el área de call center de previsión de tráfico, de modo que los datos en los fines de semana es (casi) siempre falta, que puede ser muy bien manejado por zoo. También, algunos puntos discretos pueden faltar, yo sólo uso R NA para que.

La cosa es: toda la magia de la previsión de paquete, como por ejemplo eta(), auto.arima() etc, parecen esperar que la llanura ts objetos, es decir, equispaced serie de tiempo que no contengan todos los datos que faltan. Creo que las aplicaciones del mundo real para equispaced-sólo el tiempo de la serie son sin duda existe, pero - en mi opinión - v e r y limitado.

El problema de un par de discretos NA valores puede ser fácilmente resuelto mediante el uso de cualquiera de los que ofrece funciones de interpolación en zoo así como por forecast::interp. Después de eso, puedo ejecutar el pronóstico.

Mis preguntas:

  1. ¿Alguien sugerir una solución mejor?
  2. (mi pregunta principal) , Al menos en mi dominio de la aplicación, llame al centro de pronósticos de tráfico (y por lo que puedo imaginar que la mayoría de los otros problemas de los dominios), series de tiempo no son equispaced. Al menos tenemos recurrente "días hábiles" esquema o algo. ¿Cuál es la mejor manera de manejar y utilizar todo el frío de la magia de la previsión paquete?

    Debo solo "comprimir" la serie de tiempo para llenar los fines de semana, hacer el pronóstico, y luego en "inflar" los datos de nuevo para volver a insertar NA valores en los fines de semana? (Eso sería una lástima, creo?)

    Hay planes para hacer el pronóstico del paquete totalmente compatible con irregular de la serie de tiempo de los paquetes como el zoológico o su? Si sí, cuando y si no, ¿por qué no?

Soy bastante nuevo en la previsión (y estadísticas en general), por lo que podría estar pasando por alto algo importante.

2voto

BoxerBucks Puntos 1134

Usted debe ser muy cuidadoso a la hora de aplicar la interpolación antes de seguir el tratamiento estadístico. La opción que usted hace para su interpolación introduce un sesgo en los datos. Esto es algo que usted definitivamente quiere evitar, ya que se podría alterar la calidad de las predicciones. En mi opinión, por falta de valores tales como los que usted menciona, que son regularmente espaciados en el tiempo, y que corresponden a un alto en las actividades, que podría ser más correcto para salir de esos días de su modelo. En el pequeño mundo de su centro de llamadas (el modelo que se está construyendo sobre ella), puede ser mejor considerar que el tiempo simplemente se detuvo cuando está cerrado en lugar de inventar las mediciones de un no-existente de la actividad. Por otro lado, el modelo ARIMA ha sido estadísticamente basa en el supuesto de que los datos igualmente espaciados. Que yo sepa no hay ninguna adaptación de ARIMA para su caso. Si son sólo faltan un par de mediciones en días de trabajo, usted podría ser obligado a utilizar la interpolación.

1voto

auselen Puntos 121

Yo no soy un R experto así que tal vez hay una manera más sencilla, pero me he encontrado con esto antes. Lo hice antes de que se implemente una función que mide la distancia (en unidades de tiempo) entre las fechas reales y guarda en una nueva columna en el tiempo actual de la serie. Así que tenemos algo así como:

index/date | value | distance  
01.01.2011 |  15   |   1  
02.01.2011 |  17   |   3  
05.01.2011 |  22   |   ..   

De esta manera, si el tiempo de la serie aún no está asociada con una serie de puntos en el tiempo (o el formato equivocado o lo que sea), entonces usted todavía puede trabajar con ella.

A continuación, escribir una función que crea una nueva serie de tiempo para usted, así:

Primero, se debe calcular cuántas unidades de tiempo de la serie de tiempo en realidad no tendrían entre las fechas de elegir y crear la línea de tiempo en el zoológico o ts o lo que sea la elección es con valores vacíos.

Segundo, usted toma su incompleta de la serie de tiempo de la matriz y, mediante un bucle, llenar los valores en la correcta línea de tiempo, de acuerdo a los límites de su elección. Cuando haya venido sobre vosotros una fila en la unidad de distancia no es uno (días (unidades) faltan), que rellene valores interpolados.

Ahora, ya que este es su función, en realidad se puede elegir cómo interpolar. Por ejemplo, usted decide que si la distancia es de menos de dos unidades, se utiliza un estándar de interpolación lineal. Si una semana es lo que falta, de hacer algo más, y si un cierto umbral de fechas que falta es alcanzado, dar una advertencia acerca de los datos - realmente lo que quieras imaginar.

Si el bucle se llega a la fecha de fin de devolver su nuevo ts.

La ventaja de esta función es que se puede utilizar diferentes interpolaciones o procedimientos de manejo dependiendo de la longitud de la brecha y el retorno de una manera limpia crea la serie en el formato de su elección. Una vez escrita, que les permite adquirir limpio y agradable ts de cualquier tipo de datos tabulares. Espero que esto les ayude de alguna manera.

0voto

Aksakal Puntos 11351

Yo no interpolar los datos antes de estimar el modelo en este tipo de datos, como @Remi señaló. Es una mala idea. Un ejemplo extremo: imagine que tiene dos puntos de datos en enero de 2013 y enero de 2014. Ahora interpolar 10 mensuales de los puntos intermedios: de Febrero a diciembre de 2013, y ejecutar la regresión en el mes de la fecha. En realidad no va a ser esta mal, pero es la misma idea: te voy a ser inflar sus estadísticas en el mejor.

El camino a seguir es el uso de series de tiempo métodos que manejan los datos que faltan. Por ejemplo, los métodos de espacio de estado. Echa un vistazo a astsa paquete de R. Se trata de un excelente libro sobre el análisis de series de tiempo. Esto va a manejar los datos que faltan muy bien. Matlab tiene ahora una funcionalidad similar en ssm paquete. Tienes que aprender a convertir el modelo en espacio de estado de forma, pero usted tiene que aprender esto de todos modos si quieres dar un paso lejos de la auto.arima "magia".

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