Métodos de análisis de series temporales
Las series temporales involucran muchos aspectos, como la previsión meteorológica, la temperatura a cada hora del día, la evolución de las acciones, etc. También tiene muchas aplicaciones en los negocios, como por ejemplo:
A continuación , utilizaremos datos de vuelo para ilustrar cómo utilizar las herramientas existentes para el pronóstico de datos de series de tiempo. Hay tres paquetes de software comúnmente utilizados para procesar series de tiempo:
Para los métodos basados en AR y MA, generalmente se requiere preprocesamiento de datos, por lo que este artículo se divide en tres partes:
Simple El procesamiento y la visualización iniciales pueden ayudarnos a comprender la distribución de los datos (y la tendencia de las series temporales) de manera eficiente y rápida.
Comprenda la estructura de los datos observando el histograma de frecuencia y el gráfico de densidad de los datos, como se muestra en la siguiente figura:
Utilice modelos estadísticos para descomponer las series de tiempo para comprender la Estructura de las secciones de datos de series de tiempo, cada una de las cuales representa una categoría de patrón. Tomando prestada la descomposición secuencial del modelo estadístico, podemos ver la parte de tendencia principal, la parte estacional y la parte residual de los datos, lo cual es consistente con nuestra especulación anterior.
Una serie temporal es estable si su media y su varianza se mantienen estables en el tiempo.
La mayoría de los modelos de series temporales utilizan el modelado de series estacionarias. La razón principal de esto es que una serie puede ser no estacionaria de muchas maneras (complejas), de las cuales la estacionariedad es solo una, lo que facilita su análisis y modelado.
Intuitivamente, si una serie temporal tiene un comportamiento específico en una serie temporal, entonces es probable que tenga el mismo comportamiento en el futuro. Por ejemplo, si observa el sol a las 6:00 en punto durante la semana, puede suponer que el sol estará a las 6:00 en punto mañana con un margen de error muy pequeño.
Además, la teoría de la correlación serial estacionaria es más madura y más fácil de implementar que la teoría de la correlación serial no estacionaria.
La estacionariedad de la serie generalmente se puede probar mediante los siguientes métodos:
Si la serie temporal es estacionaria, entonces en ACF/PACF, los puntos de datos observados son los mismos que los Datos anteriores La correlación entre puntos caerá bruscamente.
El sombreado en forma de cono en la figura siguiente es el intervalo de confianza. Los puntos de datos más allá del intervalo de confianza indican una fuerte correlación con los datos observados en sí, y esta correlación no proviene de fluctuaciones estadísticas.
PACF mide la correlación verdadera (correlación directa) entre X(t) y X(t-h) comparando todos los puntos de datos en (t-h, t) con X(t) Calcula la correlación entre X(t) y X(t-h).
Como se muestra en la siguiente figura, la correlación de los puntos de datos no cae bruscamente, por lo que la serie no es estacionaria.
Si una serie es estacionaria, entonces su media móvil/varianza se mantendrá estable en el tiempo.
Pero en la figura siguiente podemos ver que la media muestra una clara tendencia ascendente a lo largo del tiempo, mientras que la varianza muestra una tendencia ascendente fluctuante, por lo que la serie no es estacionaria.
En términos generales, un valor de P inferior a 0,05 se considera significativo y se puede rechazar la hipótesis nula. Pero aquí, el valor p de 0,99 claramente no es significativo, por lo que se acepta la hipótesis nula y la serie no es estacionaria.
A través de la prueba de estacionariedad anterior, sabemos que la serie temporal no es estacionaria. Además, a través de la descomposición de la secuencia en la parte 1.3 anterior, también podemos ver que la secuencia se puede descomponer en 3 partes:
Podemos usar la transformación de datos para imponer una penalización mayor a datos más grandes, como como tomar números de pares, raíces cuadradas, raíces cúbicas, diferencias, etc., para lograr el propósito de hacer que la secuencia sea estable.
Después de la media móvil, los datos pierden sus características originales (fluctuaciones ascendentes), lo que da como resultado que se pierda demasiada información y, ciertamente, no se puede utilizar como entrada para modelos posteriores.
La diferencia es un método común para convertir secuencias no estacionarias en secuencias estacionarias, y la "I" en ARIMA se refiere a la diferencia, por lo que ARIMA puede manejar secuencias no estacionarias, lo que equivale a convertir secuencias no estacionarias. secuencias estacionarias a través de la diferencia primero. La serie se convierte en una serie estacionaria y luego se usa ARMA para construir el modelo.
En términos generales, diferencia consiste en restar el valor de un momento al valor del momento anterior para obtener una nueva secuencia. Pero aquí hay una diferencia. Restamos el promedio móvil del momento correspondiente del valor en el momento actual.
Veamos la diferencia entre ambos.
Resumamos la operación ahora:
A través de los 3 pasos anteriores, convertimos con éxito la secuencia no estacionaria en una secuencia estacionaria. Arriba usamos el promedio móvil más simple, probemos el promedio móvil exponencial a continuación.
La definición anterior de promedio móvil exponencial se usa con más frecuencia, pero el promedio móvil exponencial implementado por pandas parece ser un poco diferente de esto. Aún debe consultar la documentación de pandas para conocer las diferencias detalladas.
Los promedios móviles exponenciales también tienen mala pinta. Intentemos usar Diferencia + Media móvil exponencial nuevamente.
Arriba convertimos con éxito la secuencia no estacionaria en una secuencia estacionaria mediante logaritmo + media móvil (exponencial) + diferencia.
Veamos cómo lucen los componentes de la serie estacionaria transformada. Pero aquí usamos el método de diferencia más simple, es decir, el valor en el momento actual es igual al valor en el momento actual de la secuencia original menos el valor en el momento anterior de la secuencia original, es decir: x'(t ) = x(t) - x(t -1).
Esto se ve bien, una secuencia fluida. Pero probémoslo.
Como puede ver, la parte de tendencia básicamente se ha eliminado, pero la parte estacional sigue siendo obvia y ARIMA no puede modelar ni analizar series que contengan estacionalidad.
Al principio mencionamos que los tres paquetes de software pueden modelar series temporales.
En aras de la simplicidad, aquí pmdarima y statsmodels.tsa utilizan directamente el mejor método de modelado, a saber, SARIMA, que agrega funciones adicionales basadas en ARIMA para ajustar la parte estacional y datos adicionales.
Antes de utilizar el modelo ARIMA (Promedio Móvil Integrado Autoregresivo), echemos un breve vistazo al modelo. En realidad, este modelo puede estar compuesto por tres partes, correspondientes a tres parámetros (p, d, q):
Por lo tanto, el modelo ARIMA es una combinación del modelo AR y el modelo MA, y luego agrega el diferencia, esto supera el problema de no poder manejar secuencias no estacionarias. Sin embargo, es importante tener en cuenta que todavía no puede encajar en TEMPORADA.
Comencemos a usar ARIMA para ajustar los datos.
(1) Primero divida el conjunto de entrenamiento y el conjunto de verificación. Tenga en cuenta que aquí se utilizan datos sin procesar para modelar, no datos transformados.
(2) Modelado y predicción de diferencias de primer orden ARIMA
(3) Restaurar resultados de diferencias
Primero, seleccione manualmente varios conjuntos de parámetros y luego realice búsqueda de parámetros, encuentre el mejor valor. Cabe señalar que para evitar el sobreajuste, generalmente no se recomienda realizar un pedido demasiado grande.
Visualiza los resultados.
(6) Finalmente, podemos diagnosticar el modelo ajustado y ver qué sucede.
Nuestra principal preocupación es garantizar que la parte residual del modelo no esté correlacionada y se distribuya normalmente con media cero. Si ARIMA estacional (SARIMA) no cumple con estas propiedades, es una indicación de que se pueden realizar más mejoras. Los diagnósticos del modelo determinan si los residuos se ajustan a una distribución normal basándose en los siguientes puntos:
Nuevamente, por conveniencia, usamos auto_arima, el método en pmdarima que busca automáticamente los mejores parámetros, para modelar aquí.
En general, en la vida real y en las reuniones de producción, además de los artículos de temporada, los artículos de tendencia y los artículos residuales, suele haber efectos festivos.
Por lo tanto, en el algoritmo del profeta, el autor considera los cuatro elementos anteriores al mismo tiempo, a saber:
En la fórmula anterior,
Para obtener información más detallada sobre el algoritmo del profeta, por favor Consulte la predicción de series de tiempo de Facebook Investigación sobre profetas algorítmicos.
El algoritmo Prophet funciona ajustando estos términos y luego sumándolos para obtener el valor predicho de la serie temporal.
Prophet proporciona parámetros intuitivos y fáciles de ajustar:
Prophet tiene requisitos de datos de entrada:
Para ver ejemplos de uso de Prophet, consulte el Cuaderno de ejemplo de Prophet
p>Esto es lo que puedes hacer con tus datos usando Prophet.
Materiales de referencia:
Investigación sobre el algoritmo de pronóstico de series temporales de Facebook Prophet
Cuaderno de ejemplo de Prophet
Se utiliza para seleccionar el mejor modelo Documentación auto_arima
Tecnología de análisis de datos: sistema de modelado AR/MA/ARMA/ARIMA para análisis de series temporales
/advaitsave/Introducción a Time-Series-forecasting-Python
Tiempo Análisis de la serie
Mi primera serie Comp (agregado Prophet)
Documentación oficial de Prophet: https://facebookincubator.github.io