Categorías
UNIVERSIDAD

Predicción de precios de commodities usando ANR tipo RNN – LSTM

A continuación les comparto un trabajo realizado junto con Sandra Quitián como parte de la materia Análisis de Series de Tiempo correspondiente al 4° semestre de la maestría en Matemáticas Aplicadas en la Universidad Sergio Arboleda.

El trabajo consistía en una exploración de la aplicabilidad de las redes neuronales artificiales (RNA – ANN) a la predicción de precios de commodities (materias primas, como el café, oro, petróleo, etc). Dada la naturaleza de los datos (series temporales) debía usarse un tipo especial de redes neurales, llamadas redes neuronales artificiales recurrentes (RNN), y específicamente una variación de ellas denominada LSTM (Long-Short Term Memory) las cuales al parecer han sido las más utilizadas y estudiadas en los últimos años, pues permiten grandes desarrollos en campos como el procesamiento de lenguaje natural, la traducción, y otras áreas, llegando incluso a ideas un poco extravagantes como la creación de guiones para películas (se alimentó la red con miles de guiones, y luego se le pidió que creara uno). Estas redes funcionan tan bien en todos estos casos porque se trata de información que varía a lo largo del tiempo y que depende en mayor o menor medida de los datos anteriores (en un texto, las palabras dependen de lo que se ha dicho antes, ya sea en la frase anterior o en un párrafo más alejado).

Con esto en mente, lo que se hizo en el trabajo fue entrenar a la red con datos de precios de los commodities correspondientes al año 2019, y luego se le pidió que predijera los precios de los meses enero y febrero del 2020 (y lo que entregó se comparó con los datos reales)

En este link pueden encontrar los datos usados (jalados desde Yahoo Finance), el código en Python y el informe PDF con la explicación y resultados)

Quizá lo más intrincado del asunto es entender bien cómo es que Keras (el paquete de Python) crea la LSTM. Entender a qué se refieren las units, el timestep, el batch size, las épocas y las dimensiones de los datos de entrada (los cuales deben ser siempre en tres dimensiones). Es decir, el core del asunto es entender la estructura de la red que se está construyendo.

Los resultados obtenidos fueron bastantes buenos. Para seis de los nueve commodities la predicción del precio fue bastante cercana a los datos reales, así que este sencillo ejemplo se puede tomar como base para construir modelos más sofisticados.

Que lo disfruten.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *