Predicción de series temporales con LSTM: importancia de hacer que las series temporales sean estacionarias

21

En este enlace sobre Estacionalidad y diferenciación , se ha mencionado que los modelos como ARIMA requieren una serie temporal estacionaria para el pronóstico, ya que sus propiedades estadísticas como la media, la varianza, la autocorrelación, etc.son constantes en el tiempo. Dado que los RNN tienen una mejor capacidad para aprender relaciones no lineales ( como se indica aquí: La promesa de redes neuronales recurrentes para el pronóstico de series de tiempo ) y funcionan mejor que los modelos de series de tiempo tradicionales cuando los datos son grandes, es esencial entender cómo estacionariamente los datos afectarían sus resultados. Las preguntas de las que necesito saber la respuesta son las siguientes:

  1. En el caso de los modelos de pronóstico de series temporales tradicionales, la estacionariedad en los datos de series temporales facilita la predicción, ¿por qué y cómo?

  2. Mientras se construye un modelo de predicción de series temporales utilizando LSTM , ¿es importante hacer que los datos de las series temporales sean estacionarios? Si es así, ¿por qué?

Abhijay Ghildyal
fuente

Respuestas:

29

En general, las series de tiempo no son realmente diferentes de otros problemas de aprendizaje automático: desea que su conjunto de pruebas 'se parezca' a su conjunto de entrenamiento, porque desea que el modelo que aprendió en su conjunto de entrenamiento aún sea apropiado para su conjunto de prueba. Ese es el concepto subyacente importante con respecto a la estacionariedad. Las series de tiempo tienen la complejidad adicional de que puede haber una estructura a largo plazo en sus datos que su modelo puede no ser lo suficientemente sofisticado para aprender. Por ejemplo, cuando usamos un retraso autorregresivo de N, no podemos aprender dependencias en intervalos más largos que N. Por lo tanto, cuando usamos modelos simples como ARIMA, queremos que los datos también sean localmente estacionarios.

  1. Como dijiste, estacionario solo significa que las estadísticas del modelo no cambian con el tiempo (estacionario 'localmente'). Los modelos ARIMA son esencialmente modelos de regresión en los que utiliza los valores N anteriores como entrada para la regresión lineal para predecir el valor N + 1. (Al menos, eso es lo que hace la parte AR). Cuando aprendes el modelo, estás aprendiendo los coeficientes de regresión. Si tiene una serie temporal en la que aprende la relación entre los N puntos anteriores y el siguiente punto, y luego la aplica a un conjunto diferente de N puntos para predecir el siguiente valor, está asumiendo implícitamente que la misma relación se mantiene entre N puntos de predicción y el siguiente N + 1er punto que intenta predecir. Eso es estacionariedad. Si separó su conjunto de entrenamiento en dos intervalos y entrenó en ellos por separado, y obtuve dos modelos muy diferentes, ¿qué concluirías de eso? ¿Crees que te sentirías seguro aplicando esos modelos para predecirnuevos datos? ¿Cuál usarías? Estos problemas surgen si los datos son 'no estacionarios'.

  2. Mi opinión sobre los RNN es la siguiente: todavía está aprendiendo un patrón de un segmento de una serie de tiempo y todavía desea aplicarlo a otra parte de la serie de tiempo para obtener predicciones. El modelo aprende una representación simplificada de la serie de tiempo, y si esa representación se aplica en el conjunto de entrenamiento pero no en el conjunto de prueba, no funcionará bien. Sin embargo, a diferencia de ARIMA, los RNN son capaces de aprender no linealidades, y los nodos especializados como los nodos LSTM son aún mejores en esto. En particular, los LSTM y GRU son muy buenos para aprender dependencias a largo plazo. Vea, por ejemplo, esta publicación de blog . Efectivamente, esto significa que lo que se entiende por "estacionariedad" es menos frágil con los RNN, por lo que es algo menos preocupante. Sin embargo, para poder aprender dependencias a largo plazo, necesitas MUCHOS datos para entrenar.

En última instancia, la prueba está en el budín. Es decir, realice la validación del modelo como lo haría con cualquier otro proyecto de aprendizaje automático. Si su modelo predice bien los datos retenidos, puede sentirse un poco seguro al usarlos. Pero como cualquier otro proyecto de ML: si los datos de su prueba son significativamente diferentes a los de su entrenamiento, su modelo no funcionará bien.

tom
fuente
2
Esta respuesta es excelente. Bien considerado y minucioso.
EstadísticasSorceress
1
Ha sido un tiempo. ¿Alguien ha probado esta suposición?
compguy24