Series de tiempo y redes neuronales: caso práctico




Series de tiempo y redes neuronales

Este ejercicio se desarrolló con el fin de entender el uso de diversas herramientas para la series de tiempo, específicamente en la predicción de commodities; oro en éste caso.

Entendimiento de los datos

El análisis se hizo sobre el comportamiento del mercado del ORO, a través de la información obtenida en Yahoo Finance.
Su valor se encuentra en USD y el valor a predecir es el valor de cierre ajustado (Adj Close).

Se toma el conjunto de datos hasta el 1 enero de 2018 como datos de entrenamiento (linea punteada) y el resto cómo datos de evaluación.

Gráfico stock oro
Observamos que a inicios del 2020 hubo un aumento del precio del oro debido especialmente a la epidemia de Coronavirus .
Data evaluación

Hipótesis y variables a realizar

De acuerdo a la literatura, en el desarrollo de análisis en datos ordenados se considera el efecto que tienen los valores previos a los valores futuros.
Bajo esta hipótesis se desarrollan variables cómo:
  • Promedio móvil en 7 y 21 días
  • Promedio móvil de divergencia/convergencia
  • Promedio móvil exponencial
  • Bandas de Bollinger
  • Momentum
Variables basadas en temporalidad
Igualmente, consideraremos nuestra serie de tiempo cómo una señal, la cual la podemos descomponer usando transformada de Fourier, en este ejercicio usamos 3, 6, 9 y 100 componentes.

 Estas variables se utilizaran para predecir el valor futuro, por lo cual se emplerá un lag de 10 días.
Variables de transformada de Fourier

Disminución de dimensionalidad

Se tienen 180 variables, de las cuales 10 corresponden al lag de la valor real del precio desde el día 1 hasta 10 días. Las otras 170 variables se buscan agrupar en 5 variables para lo cual se emplea el método de PCA.

Variables definitivas

Finalmente, se dejan las variables de lag de 10 días para el valor a predecir y las variables de PCA.
En total, 20 variables para predecir.

Modelo

Se emplea una red neuronal con 100 neuronas de entrada entrenando con 2000 epochs y batchs de 100 registros.

Resultado

Los resultados parciales son:
Epoch 50

Entrenamiento y test con 50 Epochs

 Epoch 100
Entrenamiento y evaluación 100 epoch



Epoch 1000
Entrenamiento y evaluación 1000 epoch



Gráfica sobre los datos de evaluación en este último Epoch.

Evaluación del modelo entrenado

 Predicción en los últimos 5 días.
Predicción últimos 5 días


Conclusiones 

  • Se observa que el modelo se adapta muy bien en la generalización al predecir un día a la vez.
  • La predicción presenta un error en los datos de evaluación en 0.23 USD en promedio.
  • El modelo en general puede ver cuando cae y sube un precio, hace falta un análisis más detallado de este comportamiento.

Futuros análisis

  • Incluir análisis de sentimiento.
  • Utilizar autoencoder para extraer variables subyacentes.





Este es un ejercicio académico, no se aconseja utilizar cómo herramienta para trading.

Comentarios

Mi foto
Mauricio Muñoz
Hola, soy Mauricio, ingeniero industrial me gustan las matemáticas, la producción eficiente y la inteligencia computacional. Con pasión por la mejora de los procesos de producción, el idioma Japonés y el desarrollo de energía limpia.