Red de conocimiento de divisas - Preguntas y respuestas sobre Forex - Métodos de análisis de series temporales

Métodos de análisis de series temporales

Las series de tiempo se refieren a un conjunto de datos medidos en tiempo continuo. Su definición matemática es un conjunto de vectores x(t), t=0, 1, 2, 3,..., donde t representa el punto de tiempo donde se encuentran los datos. Ubicado, x(t) es un conjunto de variables aleatorias (medidas) dispuestas en orden temporal. Una serie de tiempo que contiene una sola variable se llama serie de tiempo univariada, y una serie de tiempo que contiene múltiples variables se llama serie de tiempo multivariada.

Las series temporales involucran muchos aspectos, como la previsión meteorológica, las temperaturas diarias y horarias, la evolución de las acciones, etc. Tiene muchas aplicaciones en los negocios, como:

A continuación, usaremos datos de vuelo para ilustrar cómo usar las herramientas existentes para predecir datos de series de tiempo. Hay tres paquetes de software comúnmente utilizados para procesar series de tiempo:

Los métodos basados ​​en AR y MA generalmente requieren un preprocesamiento de datos, por lo que este artículo se divide en tres partes:

Procesamiento preliminar simple y La visualización puede ayudarnos a comprender la distribución de datos (y las tendencias en series de tiempo) de manera eficiente y rápida.

Observe el histograma de frecuencia y la distribución de densidad de los datos para obtener información sobre la estructura de los datos, como se muestra en la siguiente figura:

La serie temporal se descompone mediante modelos estadísticos para comprender las diversas partes de los datos de la serie temporal. Cada sección representa una categoría de patrón. Utilizando la descomposición de secuencia de modelos estadísticos, podemos ver el componente de tendencia principal, el componente estacional y el componente residual de los datos, lo cual es consistente con nuestra especulación anterior.

Se dice que una serie temporal es estable si su media y varianza se mantienen estables en el tiempo.

La mayoría de los modelos de series temporales se modelan sobre la premisa de series estacionarias. La razón principal de esta situación es que una secuencia tiene muchas formas (complejas) no estacionarias, pero solo una estacionariedad, que es relativamente fácil de analizar y modelar.

Intuitivamente, si una serie temporal tiene un comportamiento específico en una determinada serie temporal, entonces es probable que tenga el mismo comportamiento en el futuro. Por ejemplo, si ha observado que el sol sale a las seis en punto durante una semana, puede inferir que el sol también saldrá a las seis en punto mañana, con un error muy pequeño.

En comparación con las secuencias no estacionarias, la teoría relacionada con las secuencias estacionarias es más madura y más fácil de implementar.

En términos generales, la estacionariedad de la secuencia se puede probar mediante los siguientes métodos:

Si la serie temporal es estacionaria, entonces entre los datos observados y los puntos de datos anteriores en ACF/PACF La correlación caerá drásticamente.

La sombra en forma de cono en la figura siguiente es el intervalo de confianza. Los puntos de datos fuera del intervalo indican que tiene una fuerte correlación con los datos observados en sí y no proviene de fluctuaciones estadísticas.

Al calcular la correlación entre X(t) y X(t-h), PACF elimina el impacto de todos los puntos de datos en X(t-h, t), lo que refleja la correlación verdadera (correlación directa) de (t-h ).

Como se puede ver en la figura siguiente, la correlación de los puntos de datos no cae bruscamente, por lo que la serie no es estacionaria.

Si una serie es estacionaria, su media móvil/varianza se mantendrá estable en el tiempo.

Sin embargo, como se puede ver en la figura siguiente, a medida que pasa el tiempo, la media muestra una tendencia ascendente obvia y la varianza también muestra una tendencia ascendente fluctuante, por lo que la secuencia no es estacionaria.

En general, si el valor p es inferior a 0,05, lo consideramos significativo y se puede rechazar la hipótesis nula. El valor de p de 0,99 aquí obviamente no es significativo, por lo que se acepta la hipótesis nula y la serie no es estacionaria.

A partir de la prueba de estacionariedad anterior, podemos saber que la serie temporal no es estacionaria. Además, a través de la descomposición de secuencia en la sección 1.3 anterior, también podemos ver que la secuencia se puede descomponer en tres partes:

Podemos usar la transformación de datos para imponer una penalización mayor a esos datos más grandes, como Tome logaritmos, raíces cuadradas, raíces cúbicas, diferencias, etc. , con el fin de lograr el propósito de estabilizar la secuencia.

Después de la media móvil, los datos pierden sus características originales (las fluctuaciones aumentan), por lo que se pierde demasiada información y es definitivamente imposible utilizarla como entrada para modelos posteriores.

El método de diferencias es un método común para convertir secuencias no estacionarias en secuencias estacionarias.

La 'I' de ARIMA se refiere a la diferencia, por lo que ARIMA puede manejar secuencias no estacionarias, lo que equivale a convertir secuencias no estacionarias en secuencias estacionarias a través de diferencias y luego modelarlas con ARMA.

La diferencia general es que restar el valor de tiempo anterior de un valor de tiempo determinado da como resultado una nueva secuencia. Pero aquí hay algo un poco diferente. Restamos la media móvil del tiempo correspondiente del valor del tiempo actual.

Veamos cuál era la diferencia ahora.

Resumamos brevemente los pasos que acabamos de tomar:

Con los tres pasos anteriores, transformamos con éxito una secuencia no estacionaria en una secuencia estacionaria. La media móvil más simple se utiliza arriba. Probemos la media móvil exponencial.

La anterior es la definición más comúnmente utilizada de promedio móvil exponencial, pero el promedio móvil exponencial implementado por Panda parece ser un poco diferente de esto. Debe verificar la diferencia detallada en la documentación de Panda.

Las medias móviles exponenciales también parecen pobres. Intentemos nuevamente con la media móvil exponencial de diferencia.

Arriba, transformamos con éxito la secuencia no estacionaria en una secuencia estacionaria tomando la diferencia de promedio móvil logarítmico (exponencial).

Veamos cómo son los componentes de una serie estacionaria transformada. Pero aquí utilizamos la distinción más simple. El valor en el momento actual es igual al valor en el momento actual en la secuencia original menos el valor en el momento anterior en la secuencia original, es decir, x'(t) = x(t)-x(t-1 ).

Tiene bastante buena pinta. Parece una secuencia suave. Pero veamos.

Se puede ver que la parte de tendencia se ha eliminado básicamente, pero la parte estacional sigue siendo obvia y ARIMA no puede modelar ni analizar las series que contienen estacionalidad.

Al principio, mencionamos que los tres paquetes 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 y puede ajustar partes estacionales y datos adicionales.

Antes de utilizar el modelo ARIMA (Promedio Móvil Integrado Autoregresivo), comprendamos brevemente este modelo. En realidad, el modelo puede constar de tres partes, correspondientes a los tres parámetros (p, d, q):

El modelo ARIMA combina, por tanto, el modelo AR y el modelo MA, más la diferencia entre ambos, superando el problema de no poder manejar secuencias no estacionarias. Sin embargo, cabe señalar que no se puede ajustar la estacionalidad.

Comencemos a ajustar los datos con ARIMA.

(1) se divide en conjunto de entrenamiento y conjunto de verificación. Cabe señalar que los datos originales utilizados para modelar aquí no son los datos convertidos.

(2)Modelado y predicción de diferencias de primer orden ARIMA

(3) Reducir los resultados de diferencia.

Primero seleccione manualmente varios conjuntos de parámetros y luego busque los mejores valores. Cabe señalar que para evitar el sobreajuste, generalmente no se recomienda que el orden aquí sea demasiado grande.

Imagínalo y verás cuál es el resultado.

(6) Finalmente, podemos diagnosticar el modelo ajustado y ver cuáles son los resultados.

Nuestra principal preocupación es garantizar que el resto del modelo no esté correlacionado y tenga una distribución normal de media cero. Si ARIMA Estacional (SARIMA) no cumple con estas propiedades, es un indicio de que se puede mejorar aún más. El diagnóstico del modelo determina si los residuos se ajustan a la distribución normal en función de los siguientes aspectos:

De manera similar, por conveniencia, utilizamos auto_ARIMA (un método en pmdarima que puede buscar automáticamente los mejores parámetros) para modelar.

En términos generales, en la vida real y en la producción, además de los artículos de temporada, los artículos de tendencia y los artículos restantes, suele haber días 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 más detalles sobre el algoritmo del profeta, consulte a "Investigación de Facebook sobre el algoritmo Prophet para el pronóstico de series temporales".

El algoritmo Prophet ajusta estos elementos y luego los suma para obtener el valor predicho de la serie temporal.

Prophet proporciona parámetros intuitivos y fáciles de ajustar:

Prophet tiene requisitos para los datos de entrada:

Para ver ejemplos de uso de Prophet, consulte Prophet cuaderno de ejemplo.

Prophet se utiliza a continuación para procesar datos.

Referencia:

Investigación sobre el algoritmo de pronóstico de series temporales de Facebook Prophet

Cuaderno de ejemplo de Prophet

auto_arima para seleccionar el mejor modelo Documentación

p>

Tecnología de análisis de datos: sistema de modelo AR/MA/ARMA/ARIMA para análisis de series temporales.

/advaitsave/Introducción al pronóstico de series temporales-Python

Análisis de series temporales

Mi primera comparación de series temporales (Profeta suplementario)

Documentación oficial de Prophet: https://facebook incubator.github.io.

上篇: ¿Nueva Zelanda prohíbe las armas de fuego? 下篇: Consejos para fotografiar insectos
Artículos populares