Haga clic para obtener más información sobre el autor Maarit Widmann.
Una aplicación completa de análisis de series de tiempo cubre los pasos en un Data science ciclo desde el acceso a la transformación, modelado, evaluación e implementación de datos de series de tiempo. Sin embargo, para los datos de series de tiempo, las tareas específicas en estos pasos difieren en comparación con los datos transversales. Por ejemplo, los datos transversales se recopilan como una instantánea de un objeto en un momento determinado, mientras que los datos de series de tiempo se recopilan al observar el mismo objeto durante un período de tiempo. Los patrones regulares en los datos de series de tiempo tienen su terminología específica y determinan el preprocesamiento requerido antes de pasar al modelado de series de tiempo. Las series de tiempo se pueden modelar con muchos tipos de modelos, pero los modelos de series de tiempo específicas, como un modelo ARIMA, utilizan la estructura temporal entre las observaciones.
En este artículo, presentamos las tareas más comunes en el proceso de creación de una aplicación de serie temporal. Finalmente, ponemos la teoría en práctica construyendo una aplicación de ejemplo en la plataforma de análisis.
Acceder a series temporales
Las series de tiempo tienen varias fuentes y aplicaciones: datos de ventas diarias para la predicción de la demanda, datos macroeconómicos anuales para la planificación política a largo plazo, datos de sensores de un reloj inteligente para analizar una sesión de entrenamiento y muchos más. Todas estas series de tiempo difieren, por ejemplo, en su granularidad, regularidad y limpieza: podemos estar seguros de que tenemos un valor del PIB para nuestro país para este año, y también para los próximos 10 años, pero no podemos garantizar que el El sensor de nuestro reloj inteligente funciona de manera estable en cualquier ejercicio y a cualquier temperatura. También podría ser que los datos de series de tiempo no estén disponibles a intervalos regulares, sino que solo se puedan recopilar de puntos de eventos aleatorios, como infecciones de enfermedades o visitas espontáneas de clientes. Sin embargo, lo que todos estos tipos de datos de series de tiempo tienen en común es que se recopilan de la misma fuente a lo largo del tiempo.
Serie temporal de regularización y limpieza
Una vez que tenemos los datos de la serie de tiempo, el siguiente paso es hacerlos igualmente espaciados con una granularidad adecuada, continuos y limpios. Las tareas requeridas dependen de la forma original de los datos y también de nuestra Analytics propósito. Por ejemplo, si estamos planeando una promoción de una semana de un producto, podríamos estar interesados en datos más detallados que si quisiéramos obtener una descripción general de las ventas de algún producto.
clasificación
Las series de tiempo deben ordenarse por tiempo. Cuando particione datos en conjuntos de entrenamiento y prueba, recuerde preservar la estructura temporal entre los registros tomando datos de arriba / abajo para probar / entrenar. Si sus datos contienen más de un registro por marca de tiempo, entonces debe agregarlos por la marca de tiempo. Por ejemplo, cuando tiene varios pedidos por día y está interesado en las ventas diarias, debe sumar las ventas de cada día. Además, si está interesado en la serie de tiempo con una granularidad diferente a la que tiene actualmente en los datos (por ejemplo, ventas mensuales en lugar de ventas diarias), puede agregar los datos con la granularidad preferida.
Valores faltantes
Si faltan algunas marcas de tiempo, debe introducirlas en la serie de tiempo para que estén igualmente espaciadas. A veces, los registros que faltan son parte de la dinámica de la serie temporal (por ejemplo, un mercado de valores cierra un viernes y abre un lunes).
Cuando introduce las marcas de tiempo que faltan en los datos, por supuesto, faltan los valores correspondientes. Puede imputar estos valores perdidos mediante, por ejemplo, interpolación lineal o valores de media móvil. Sin embargo, recuerde que la mejor técnica para imputar valores perdidos depende de la dinámica regular de los datos. Por ejemplo, si inspecciona la estacionalidad semanal en los datos diarios y falta un valor en un sábado, entonces el valor del último sábado es probablemente el mejor reemplazo. Si los valores perdidos no faltan al azar, como los precios de cierre del mercado de valores que faltan los fines de semana, puede reemplazarlos por un valor fijo, que sería 0 en este caso. Por otro lado, si los valores perdidos son aleatorios y ocurren lo suficientemente lejos en el pasado, puede usar los datos después del valor faltante e ignorar los datos más antiguos.
Patrones irregulares
Una buena forma de manejar las fluctuaciones rápidas y los valores atípicos es suavizar los datos. Se pueden utilizar varias técnicas, como media móvil y suavizado exponencial. Además, recortar los valores que se encuentran fuera de los bigotes de un diagrama de caja suaviza los datos. Tenga en cuenta que una fuerte estacionalidad en los datos puede llevar a un diagrama de caja generalizado, y luego es mejor usar un diagrama de caja condicional para detectar valores atípicos.
Sin embargo, a veces la serie de tiempo solo muestra un fenómeno muy irregular. En tal caso, puede intentar hacer que la serie de tiempo sea más regular extrayendo un subconjunto de ella, por ejemplo, considerando solo las ventas de un producto en lugar de las ventas de todo el supermercado, o agrupando los datos.
Explorando y transformando series de tiempo
En este punto, tenemos nuestros datos de series de tiempo en la forma adecuada para explorarlos visual y numéricamente. Las diferentes gráficas y estadísticas revelan patrones y relaciones temporales a corto y largo plazo en la serie temporal que podemos utilizar para comprender mejor su dinámica y predecir su desarrollo futuro.
Exploración visual de series de tiempo
La gráfica básica para explorar series de tiempo es la gráfica lineal (Figura 3) que muestra una posible dirección, fluctuaciones regulares e irregulares, valores atípicos, brechas o puntos de inflexión en la serie de tiempo. Si observa un patrón regular en su serie de tiempo, como la estacionalidad anual en las ventas de bebidas, puede inspeccionar cada ciclo estacional (año) por separado en una gráfica estacional (Figura 3). En el gráfico estacional puede ver fácilmente, por ejemplo, si julio fue un mes de ventas más fuerte este año que el año pasado, o si las ventas mensuales están aumentando año tras año.
Si está interesado en lo que sucede dentro de las estaciones, como cuál es la mediana de las ventas en los meses de verano y cuánto y en qué dirección varían las ventas cada mes, puede inspeccionar este tipo de dinámicas en un diagrama de caja condicional (Figura 3). Otro gráfico útil para explorar series de tiempo es el gráfico de retardo (Figura 3). El gráfico de retraso muestra la relación entre los valores actuales y los valores pasados, por ejemplo, las ventas de hoy y las ventas de la semana anterior.
Descomposición clásica de series temporales
La descomposición clásica, es decir, la descomposición de la serie temporal en su tendencia, estacionalidades y residuales, proporciona un buen punto de referencia para la previsión. La parte restante de la serie de tiempo, el residual, se supone que es estacionario, y puede ser pronosticado por un modelo ARIMA, por ejemplo. Sin embargo, recuerde que si la serie residual no es estacionaria, es posible que se requieran algunas transformaciones adicionales, como la diferenciación de primer orden o la transformación logarítmica de la serie de tiempo original.
En primer lugar, si la serie de tiempo muestra una dirección, una tendencia, la serie de tiempo se puede desviar, por ejemplo, ajustando un modelo de regresión a través de los datos o calculando un valor de promedio móvil.
En segundo lugar, si la serie temporal muestra una fluctuación regular (una estacionalidad), la serie temporal puede ajustarse para ello. Puede encontrar el retraso en el que se produce la mayor estacionalidad en el gráfico de autocorrelación de la serie temporal. Por ejemplo, si observa un pico en el retraso 7 y tiene datos diarios, entonces los datos tendrán una estacionalidad semanal. La estacionalidad se puede ajustar diferenciando los datos en el rezago donde ocurre el pico principal. Si desea ajustar la segunda estacionalidad en los datos, puede hacerlo repitiendo el procedimiento para la serie de tiempo ajustada (diferenciada).
Finalmente, cuando haya alcanzado una serie de tiempo estacionaria que esté lista para ser modelada, por ejemplo, con un modelo ARIMA, puede hacer una verificación final con, por ejemplo, Prueba de caja de Ljung por estacionariedad.
Modelado y evaluación de series de tiempo
Ahora pasamos a modelar la parte residual de la serie de tiempo que contiene su dinámica irregular. Podemos hacer esto con los modelos ARIMA, máquina de aprendizaje modelos, redes neuronales y muchas variaciones de ellos. A menudo modelamos la parte residual de la serie de tiempo con estos modelos, porque es estacionaria. Sin embargo, no siempre es necesario descomponer las series de tiempo, porque algunos modelos, como por ejemplo el modelo ARIMA estacional, también funcionan para modelar series de tiempo no estacionarias.
A continuación, recopilamos algunas propiedades de estas diferentes técnicas de modelado, sus similitudes y diferencias, para que pueda elegir la mejor para su caso de uso. Recuerde también que es útil entrenar varios modelos, ¡e incluso construir un conjunto de ellos!
Modelos ARIMA
ARIMA El modelo (Promedio móvil integrado autorregresivo) es un modelo de regresión lineal entre los valores actuales y pasados (parte AR), y también entre los errores de pronóstico actuales y pasados (parte MA). Si el modelo tiene una parte I distinta de cero, entonces los datos se diferencian para hacerlo estacionario. Los modelos ARIMA básicos asumen que la serie de tiempo es estacionaria y que las series de tiempo estacionarias no tienen patrones predecibles a largo plazo. La disminución de la precisión en los pronósticos a largo plazo se puede ver en los intervalos de confianza cada vez mayores de los pronósticos. Tener más datos no siempre es mejor para entrenar modelos ARIMA: los conjuntos de datos grandes pueden hacer que la estimación de los parámetros del modelo de un modelo ARIMA lleve mucho tiempo, así como exagerar la diferencia entre el proceso real y el proceso del modelo.
Modelos de aprendizaje automático
Los modelos de aprendizaje automático utilizan los valores rezagados como columnas de predicción e ignoran la estructura temporal entre la columna de destino y las columnas de predicción. Los modelos de aprendizaje automático también pueden identificar patrones a largo plazo y puntos de inflexión en los datos, siempre que se proporcionen suficientes datos en los datos de entrenamiento para establecer estos patrones. En general, cuantas más irregularidades muestran los datos, más datos se necesitan para entrenar el modelo. Cuando aplica un modelo de aprendizaje automático, se recomienda modelar el residuo. De lo contrario, podría construir un modelo que sea más complicado que el modelo de descomposición clásico, ¡pero que en realidad no está aprendiendo nada nuevo además de eso!
Consejos para la selección de modelos
En primer lugar, algunos fenómenos son difíciles de pronosticar y, en tal caso, a menudo tiene sentido optar por un modelo más simple y no invertir recursos en modelar algo que no se puede pronosticar con precisión.
En segundo lugar, el desempeño del modelo no es el único criterio. Si las decisiones importantes se basan en los resultados del modelo, su interpretabilidad puede ser más importante que un rendimiento ligeramente mejor. Dicho esto, una red neuronal podría perder frente a un modelo de descomposición clásico simple, aunque pronostica un poco mejor.
En tercer lugar, agregar variables explicativas a su modelo podría mejorar la precisión del pronóstico. Sin embargo, en un modelo de este tipo, las variables explicativas también deben ser pronosticadas, y la creciente complejidad del modelo no siempre merece una mayor precisión. A veces, las estimaciones aproximadas son suficientes para respaldar las decisiones: si las cantidades de envío se calculan en decenas y cientos, entonces la demanda prevista tampoco tiene que tener una mayor granularidad.
Evaluación del modelo
Después de entrenar un modelo, el siguiente paso es evaluarlo. Para el pronóstico en la muestra, el conjunto de prueba es el conjunto de entrenamiento en sí mismo, por lo que el proceso del modelo se ajusta a los datos que se usaron para entrenar el modelo. Para el pronóstico fuera de la muestra, el conjunto de prueba es posterior al conjunto de entrenamiento en el tiempo.
Una métrica de error recomendada para evaluar un modelo de serie temporal es el error porcentual absoluto medio (MAPE), ya que proporciona el error en escala universal, como porcentaje del valor real. Sin embargo, si el valor real es cero, esta métrica no está definida y también otras métricas de error, como el error cuadrático medio de la raíz (RMSE), servirá. Sin embargo, lo que a menudo se recomienda es NO usar R-cuadrado. La métrica R cuadrado no se ajusta al contexto del análisis de series de tiempo porque el enfoque está en predecir la variabilidad sistemática futura de la columna de destino en lugar de modelar toda la variabilidad en el pasado.
Pronóstico y reconstrucción de series de tiempo
¡Casi estámos allí! El último paso es pronosticar valores futuros y reconstruir la señal.
Pronóstico dinámico
Si tiene un modelo que no puede proporcionar pronósticos precisos a largo plazo, la implementación dinámica a menudo mejora la precisión del pronóstico fuera de la muestra. En la implementación dinámica, solo se pronostica un punto en el futuro a la vez, y este valor de pronóstico actualiza los datos pasados para generar el próximo pronóstico (Figura 5).
Restauración de tendencias y estacionalidades
Finalmente, si descomponemos la serie de tiempo antes de pronosticar, necesitamos restaurar la tendencia y / o estacionalidades a los pronósticos. Si ajustamos la estacionalidad diferenciando los datos, comenzamos a reconstruir la señal agregando valores en el retraso donde ocurre la estacionalidad. Por ejemplo, si tuviéramos datos diarios y en los que aplicamos la diferenciación estacional en el retraso 7 (estacionalidad semanal), restaurar esta estacionalidad requeriría el siguiente cálculo en los valores de pronóstico yt+1, yt+2, ..., yt+h :
donde tes el último momento en los datos de entrenamiento, y h es el horizonte de pronóstico.
Para restaurar la segunda estacionalidad, repetiríamos el paso descrito anteriormente para la serie temporal restaurada. Si quisiéramos restaurar el componente de tendencia a la serie de tiempo, aplicaríamos el modelo de regresión que representa la tendencia a la serie de tiempo restaurada.
Aplicación de serie temporal completa en la plataforma de análisis
Finalmente, echemos un vistazo a cómo convertir estos pasos en práctica utilizando nuestra plataforma de análisis. El flujo de trabajo Accediendo a Transformar y Modelar Series de Tiempo (disponible en el Hub) en la Figura 6 muestra los pasos desde el acceso hasta la limpieza, exploración visual, descomposición y modelado de series de tiempo. Para algunas de estas tareas, usamos componentes de series de tiempo que encapsulan los flujos de trabajo como funcionalidades específicas de las series de tiempo: agregan los datos en la granularidad seleccionada, realizan la descomposición clásica y más.
En este ejemplo, usamos el Muestra - Superstore datos proporcionados por Cuadro. En nuestro análisis, nos centramos en los pedidos de todos los productos de 2014 a 2017, en total 9994 registros. Comenzamos el preprocesamiento reconfigurando los datos en datos de series de tiempo calculando las ventas totales por día. Ahora, solo tenemos un valor por día, pero faltan algunos días porque no se enviaron pedidos en estos días. Por lo tanto, introducimos estos días en la serie de tiempo y reemplazamos los valores de ventas faltantes con un valor fijo 0. Después de eso, agregamos los datos a nivel mensual y consideramos las ventas promedio de cada mes en un análisis más detallado.
Para la exploración visual, también agregamos los datos a nivel anual y descubrimos que hay un punto de inflexión a principios del año 2015, como muestra el gráfico de líneas de la derecha en la Figura 7. El gráfico de líneas de la izquierda muestra la estacionalidad anual de los datos: hay dos picos regulares al final de cada año y un pico más bajo al comienzo de cada año. También detectamos la estacionalidad anual en los datos, como lo muestra el pico principal en el rezago 12 en el gráfico ACF de la izquierda. Descomponemos la serie de tiempo en su tendencia, estacionalidad y residual, y estos componentes se muestran en la gráfica lineal en el medio de la Figura 7. La gráfica ACF de la derecha no muestra una autocorrelación significativa en la serie residual.
A continuación, modelamos la serie residual de las ventas medias mensuales con un modelo ARIMA. Después de diferenciar en el desfase 12, la longitud de la serie de tiempo es de 36 observaciones. Buscamos el mejor modelo con el componente Auto ARIMA Learner con pedido máximo 4 para las partes AR y MA y pedido máximo 1 para la parte I. El modelo de mejor rendimiento basado en Criterio de información de Akaike es ARIMA (0, 1, 4), y el MAPE resultante basado en pronósticos en la muestra es 1.153.
Finalmente, evaluamos la precisión del pronóstico fuera de la muestra del modelo. El flujo de trabajo Pronóstico y reconstrucción de series de tiempo (disponible en el Hub) en la Figura 8 muestra cómo pronosticar las ventas diarias en 2017 con base en los datos mensuales en los años 2014 a 2016 (24 observaciones), y el modelo ganador ARIMA (0,1,4) usando la implementación dinámica Acercarse. Después de eso, reconstruimos la señal, en este caso, restauramos la tendencia y la estacionalidad anual a los valores de pronóstico (12 valores de ventas promedio mensuales). Comparamos los valores reales y pronosticados y obtenemos un MAPE de 0.336.
Resumen
Las series de tiempo, ya sean datos de sensores que muestran el comportamiento de un objeto diminuto nanosegundo tras nanosegundo, datos macroeconómicos del siglo XX o algo intermedio, tienen técnicas de análisis específicas que se aplican a los pasos de acceso, manipulación y modelado.
En este artículo, le presentamos los conceptos básicos de las técnicas de análisis para series de tiempo que lo ayudan a comenzar cuando trabaja con datos de series de tiempo.
Referencias
[1] Chambers, John C., Satinder K. Mullick y Donald D. Smith. Cómo elegir la técnica de previsión adecuada. Universidad de Harvard, Escuela de Graduados en Administración de Empresas, 1971.
[2] Hyndman, Rob J. y George Athanasopoulos. Pronóstico: principios y práctica. OTextos, 2018.
Fuente: https://www.dataversity.net/building-a-time-series-analysis-application/
- Absoluto
- Adicionales
- análisis
- Analytics
- Aplicación
- aplicaciones
- AR
- artículo
- auto
- conceptos básicos
- MEJOR
- Bebidas
- cuerpo
- Box
- build
- Construir la
- Limpieza
- Columna
- Algunos
- componente
- confianza
- países
- Current
- datos
- día
- Demanda
- Desarrollo
- Enfermedades
- estima
- Evento
- Haz ejercicio
- exploración
- Figura
- Finalmente
- Nombre
- cómodo
- Focus
- Viernes
- futuras
- PIB
- General
- George
- candidato
- graduados
- Manejo
- harvard
- Universidad de Harvard
- Cómo
- Como Hacer
- HTTPS
- Cientos
- Identifique
- imagen
- Infecciones
- información
- IT
- Julio
- large
- Lead
- APRENDE:
- aprendiz
- aprendizaje
- Nivel
- línea
- Largo
- máquina de aprendizaje
- gran
- Mercado
- Métrica
- modelo
- modelado
- Lunes
- datos mensuales
- meses
- movimiento
- del sistema,
- telecomunicaciones
- Neural
- red neural
- redes neuronales
- abre
- solicite
- en pedidos de venta.
- Otro
- Patrón de Costura
- actuación
- planificar
- plataforma
- predicción
- Producto
- Productos
- promociones y
- archivos
- regresión
- Relaciones
- Recursos
- Resultados
- ventas
- Escala
- Escuela
- seleccionado
- sentido
- Serie
- set
- Envíos
- sencillos
- chica
- inteligente
- Instantánea
- So
- comienzo
- fundó
- statistics
- en stock
- bolsa de valores
- Subido
- verano
- SOPORTE
- Cuadro
- Target
- test
- Lo esencial
- El futuro de las
- equipo
- parte superior
- Formación
- Universal
- universidad
- propuesta de
- Ver ahora
- semana
- una vez por semana
- Que es
- Wikipedia
- dentro de
- Actividades:
- flujo de trabajo
- entrenamiento
- valor
- año
- años
- cero