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:
- 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?)
- 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. - 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.
fuente
Respuestas:
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:
Por el contrario, ARIMA estacional tiene seis valores de entrada ARIMA (p, d, q, P, D, Q), donde:
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:
Validación cruzada y comparación de modelos:
Espero que esto ayude y buena suerte!
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente