Predicción de series de tiempo usando ARIMA vs LSTM


64

El problema con el que estoy lidiando es predecir valores de series de tiempo. Estoy viendo una serie de tiempo a la vez y, por ejemplo, en base al 15% de los datos de entrada, me gustaría predecir sus valores futuros. Hasta ahora me he encontrado con dos modelos:

  • LSTM (memoria a corto plazo; una clase de redes neuronales recurrentes)
  • ARIMA

He probado ambos y leí algunos artículos sobre ellos. Ahora estoy tratando de tener una mejor idea de cómo comparar los dos. Lo que he encontrado hasta ahora:

  1. LSTM funciona mejor si se trata de una gran cantidad de datos y hay suficientes datos de capacitación disponibles, mientras que ARIMA es mejor para conjuntos de datos más pequeños (¿es esto correcto?)
  2. ARIMA requiere una serie de parámetros (p,q,d)que deben calcularse en función de los datos, mientras que LSTM no requiere establecer dichos parámetros. Sin embargo, hay algunos hiperparámetros que necesitamos ajustar para LSTM.
  3. EDITAR: Una diferencia importante entre los dos que noté al leer un gran artículo aquí , es que ARIMA solo podría funcionar bien en series de tiempo estacionarias (donde no hay estacionalidad, tendencia, etc.) y debe cuidar eso si quiere usar ARIMA

Aparte de las propiedades mencionadas anteriormente, no pude encontrar ningún otro punto o hecho que pudiera ayudarme a seleccionar el mejor modelo. Estaría realmente agradecido si alguien pudiera ayudarme a encontrar artículos, documentos u otras cosas (hasta ahora no tuve suerte, solo algunas opiniones generales aquí y allá y nada basado en experimentos).

Tengo que mencionar que originalmente estoy tratando con datos de transmisión, sin embargo, por ahora estoy usando conjuntos de datos NAB que incluyen 50 conjuntos de datos con el tamaño máximo de 20k puntos de datos.



¿Le importaría compartir el código de LSTM? Y GRACIAS.
AYUDA

Respuestas:


25

La declaración 1 es correcta, la declaración 2 es correcta, pero requiere elaboración, y la declaración 3 es incorrecta para ARIMA estacional:

Lo siguiente puede indicarle la dirección correcta, pero con suerte obtendrá algunas respuestas más con más profundidad en el campo de LSTM.

Menciona que ha probado ambos algoritmos y que simplemente está tratando de descubrir cuál es mejor, lo que me lleva a pensar que puede estar teniendo más problemas con el proceso de ciencia de datos y la validación cruzada que con los detalles de los modelos.

Series temporales en general:

Las series de tiempo, en general, son difíciles de pronosticar. Si fueran fáciles de pronosticar, todos los científicos de datos serían ricos, habiendo pronosticado con precisión el valor de todas las existencias. La realidad es que los fondos de cobertura, en promedio, no superan al mercado y que el pronóstico de series de tiempo es típicamente muy pobre y se aplica solo a duraciones muy cortas. Los principales problemas son que hay mucho ruido, hay muchas influencias ocultas, los modelos son demasiado simplistas, los influencers no se comportan como creemos que deberían, la interacción entre linealidad y no linealidad es sutil y confusa ... hasta el infinito.

ARIMA

Usted es incorrecto en su evaluación de que ARIMA requiere series de tiempo estacionarias para pronosticar. ARIMA no estacional tiene tres valores de entrada para ayudar a controlar el suavizado, la estacionariedad y el pronóstico de ARIMA (p, d, q), donde:

  • p es el número de términos autorregresivos,
  • d es el número de diferencias no estacionales necesarias para la estacionariedad, y
  • q es el número de errores de pronóstico rezagados en la ecuación de predicción.

Por el contrario, ARIMA estacional tiene seis valores de entrada ARIMA (p, d, q, P, D, Q), donde:

  • P es el número de términos autorregresivos estacionales,
  • D es el número de diferencias estacionales, y
  • Q es el número de términos de promedio móvil estacional.

Sujeto a las declaraciones de calificación anteriores, le sugiero que juegue con ARIMA estacional para tener una idea de las complejidades involucradas en suavizar, desestabilizar, desarmar, desestimar y pronosticar.

LSTM

No sé lo suficiente sobre LSTM para agregar mucho aquí. Agregaré que las banderas rojas tienden a aparecer cuando alguien comienza un ejercicio de ciencia de datos con aprendizaje profundo. Sugiero aprender todo lo que pueda usando ARIMA y luego aplicar parte de su experiencia en ARIMA para ayudarlo a aprender LSTM. Las redes neuronales pueden ser una herramienta muy poderosa, pero ellas:

  • puede llevar mucho tiempo correr,
  • a menudo requieren más datos para entrenar que otros modelos, y
  • tener muchos parámetros de entrada para sintonizar.

Validación cruzada y comparación de modelos:

norte

Espero que esto ayude y buena suerte!


Gracias por su respuesta. Sus notas sobre ARIMA son útiles y trato de tenerlas en cuenta. En caso de validación cruzada y comparación de los dos modelos, para los conjuntos de datos actuales, utilizando una variedad de parámetros, puedo decir qué algoritmo funciona mejor, etc. El problema es que ninguno de esos conjuntos de datos podría representar los datos reales (transmisión de datos) y es por eso que pensé que sería mejor pedirle a otros en el área de ciencia de datos y aprendizaje automático que compartan sus pensamientos y experiencias.
ahajib

Pero si tiene datos de transmisión, puede convertirlos en datos de prueba guardando la transmisión. Lo bueno de las series temporales es que siempre puede crear un conjunto de datos de prueba a partir de cualquier conjunto de datos. Solo necesita guardar algunos de los datos y luego revertir el tiempo.
AN6U5

Sé que esto está un poco viejo, pero tengo que estar en desacuerdo aquí. Los parámetros d, D son para diferenciar como dice @ AN6U5, pero la razón para hacer estas diferencias en primer lugar es para imponer la estacionariedad en el problema. De hecho, una interpretación del modelo ARIMA es que es solo una regresión lineal con términos para imponer la estacionariedad en las series de tiempo.
Ryan

6

Agregando a @ AN6U5 responder.

Desde una perspectiva puramente teórica, este artículo ha demostrado que los RNN son aproximadores universales. No he leído el documento en detalle, por lo que no sé si la prueba también se puede aplicar a LSTM, pero sospecho que sí. El mayor problema con RNN en general (incluido LSTM) es que son difíciles de entrenar debido a la exploración de gradiente y al problema de desaparición de gradiente. El límite práctico para LSTM parece estar alrededor de 200 pasos con descenso de gradiente estándar e inicialización aleatoria. Y como se mencionó, en general, para que cualquier modelo de aprendizaje profundo funcione bien, necesita una gran cantidad de datos y un montón de ajustes.

El modelo ARIMA es más restringido. Si su sistema subyacente es demasiado complejo, entonces es simplemente imposible lograr un buen ajuste. Pero, por otro lado, si su modelo subyacente es lo suficientemente simple, es mucho más eficiente que el enfoque de aprendizaje profundo.


2

Los modelos ARIMA son lineales y los modelos LSTM no lineales. Algunos otros modelos de series de tiempo no lineales paramétricos que los estadísticos han estudiado son los modelos autorregresivos de umbral (TAR) y los modelos autorregresivos de transición suave (STAR). El paquete R tsDyn implementa estos modelos.

Me pregunto cómo lo hacen los modelos STAR frente a LSTM.


2

Llegué a la misma conclusión que usted y los demás, el pronóstico tradicional sigue siendo probablemente el más aplicable y quizás confiable para las series temporales de valores numéricos. Hay un ligero sangrado en el aprendizaje profundo en la discusión, donde las series de tiempo para valores numéricos se mezclan con el aprendizaje profundo, donde el aprendizaje profundo (actualmente) se aplica a los desafíos modernos en el reconocimiento de patrones para la detección de imágenes, sonido, texto limpio o anomalías. A menudo tengo buenos resultados con VAR / VECM para datos transaccionales diarios, que probablemente podrían aplicarse a su caso de uso de procesamiento de señal.


1

Como caso extremo, tuve la oportunidad de estudiar el pronóstico de Forex (tasa de cambio de divisas) y comparé intensamente el rendimiento de LSTM, windowed-MLP y ARIMA. Como dicen muchos artículos, la serie temporal de Forex está cerca de la serie de caminata aleatoria (es completamente no estacionaria). Ninguno de estos algoritmos puede predecir la tasa spot del día siguiente. Por ejemplo, si no hay (o poco) cambio, mantendrá el valor actual y se verá en forma. Sin embargo, si hay un cambio repentino (sustancial) en la tasa spot de mañana, entonces siempre falla en predecir. El problema es que no hay nada que aprender de los datos de capacitación (digamos, el historial de tasas spot de los últimos 10 años) si es lo suficientemente grande o no, porque es completamente aleatorio (tal vez, debido a los sentimientos de los comerciantes de intercambio ...) .

De hecho, LSTM con solo '1' retraso, o ARIMA con (1,0,0) funcionará mejor ya que almacenar datos con más de 1 retraso no ayuda en absoluto. Para este tipo de series de tiempo, diría, en términos de seguimiento del rendimiento, 1) ARIMA, 2) LSTM, 3) MLP. Último comentario ... MLP con parámetros macro / micro económicos (por ejemplo, diferencia del PIB, tasas de bonos, precio del petróleo crudo, índice del dólar, etc.) ya que las características adicionales tampoco funcionaron en absoluto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.