Story Transcript
REDES NEURONALES Y MODELOS PREDICTIVOS
Jorge Estévez Analista Grupo ER www.grupoempresarialer.com www.grupoempresarialer.com
SERIES TEMPORALES El valor de un actico a lo largo del tiempo es una serie temporal. Por tanto, la predicción de valores futuros consiste en la predicción de series temporales. Una serie temporal es una secuencia cronológica de observaciones de una variable. El tiempo se suele observar en pasos de tiempo discretos, luego el valor de una variable de una serie temporal será una variable discreta. Cuando se estudia la variación de una serie temporal se trata de identificar patrones históricos que puedan ser útiles en la predicción. Para tratar de identificar estos patrones se parte de que una serie temporal está compuesta por: Tendencias: una tendencia se da cuando los valores de una serie temporal crecen o disminuyen durante largos periodos de tiempo. Ciclos: un ciclo se refiere a movimientos hacia arriba o hacia abajo alrededor del nivel de tendencia. Estacionalidades: patrones que se repiten cada determinado tiempo. Aleatoriedades: son movimientos irregulares en una serie de tiempo que no siguen un patrón regular, ni reconocible.
www.grupoempresarialer.com
Series financieras Las principales características de las series financieras son: Son procesos prácticamente aleatorios. Cambian sus propiedades estadísticas a lo largo del tiempo. Son series con elevado nivel de ruido, ya que existe una gran cantidad de aleatoriedad en las variaciones día a día. La aparición de técnicas de predicción pasa a ser parte del proceso a predecir, puesto que influirá en la toma de decisiones de los inversores. La predicción de valores futuros de series financieras es un problema difícil, dado que debería tener en cuenta todos los parámetros que determinan las expectativas de los intervinientes en el mercado, y estos parámetros suelen ser de carácter psicológico e imposibles de cuantificar. Lo que sí es cierto es que muchas de las expectativas que genera el valor de un activo se deben a la información histórica que se conoce de ella. Todos los decisores disponen de esta información, luego se puede llegar a modelar la predicción de una serie financiera considerando que depende de esta información histórica disponible.
www.grupoempresarialer.com
Modelos de predicción de series financieras Cuando se trata de modelar series financieras, se plantea modelar un “problema inverso”, es decir, dada la evolución de un sistema (serie de datos compuesta por la variación de un activo a lo largo del tiempo) construir un modelo que pueda haberla originado (modelo generador de datos). Si se determina la función que puede dar origen a esta evolución, se dispondrá de un posible modelo de predicción. Para estimar esta función se separan los datos en dos grupos: el primero se utilizará para llevar a cabo una interpolación o aproximación de la función desconocida (conjuntode entrenamiento) y el segundo para evaluar la bondad del ajuste mediante los errores de predicción. Los primeros modelos de predicción de series temporales que se desarrollaron fueron los modelos ARMA (modelos autoregresivos y de medias móviles) y ARIMA (modelos autoregresivos, integrados de medias móviles). Estos modelos trataban de modelizar la evolución de una serie temporal empleando funciones lineales cuyos parámetros dependían de medias móviles y autorregresiones. Estos modelos tienen una serie de inconvenientes como son su incapacidad de ajustar comportamientos irreversibles en el tiempo, asimétricos o irregulares. Lo cierto es que no dejan de ser modelos lineales incapaces de detectar relaciones no lineales.
www.grupoempresarialer.com
Debido a los inconvenientes que tenían los modelos lineales de predicción, se empezaron a desarrollar modelos de predicción no lineales. Los modelos de predicción no lineales que mejores resultados proporcionan son los que se desarrollan en el campo de las redes neuronales. Estos modelos tienen la capacidad de explorar de forma adaptativa una gran cantidad de modelos potenciales. Actualmente existen dos vías para tratar de predecir valores futuros de series financieras: Vía compresión: tratar de entender el comportamiento de una serie financiera utilizando la reconstrucción del espacio de estados (modelos ARMA y ARIMA). Vía aprendizaje: desarrollar modelos utilizando un enfoque de redes, desarrollando un algoritmo que imite el comportamiento de la serie financiera. La utilización de redes neuronales tiene un inconveniente: se pierde la claridad de la que se disponía en los modelos lineales en cuanto a cuáles son los parámetros que determinan el modelo de predicción, y cómo cambia éste al variar aquellos.
www.grupoempresarialer.com
Una red neuronal artificial (RNA) es un modelo matemático que, inspirado en el funcionamiento del sistema nervioso biológico, procesa información. Las redes neuronales artificiales tienen un conjunto de propiedades específicas, como son la habilidad de adaptarse (aprender), generalizar y organizar la información. El aprendizaje de los sistemas nerviosos biológicos implica ajustes en las conexiones entre las neuronas. Las RNA tratan de imitan esta estructura que tienen los sistemas nerviosos biológicos para tomar decisiones y para aprender. Aplicaciones: OCR, modelado conductual, préstamo de análisis de riesgos, clasificación de patrones, análisis de imágenes, …..
www.grupoempresarialer.com
Un sistema de RNA está compuesto por una estructura con dos elementos básicos: Neurona: es el elemento básico de procesamiento de la información de la RNA. Las redes neuronales están compuestas por neuronas interconectadas entre sí. Dendritas: representan las uniones entre neuronas, y tienen asociado un valor o peso que suele indicar la importancia de la unión. Una red neuronal artificial está compuesta por un conjunto de neuronas interconectadas entre sí que trabajan conjuntamente para solucionar un determinado problema. El elemento básico de una red neuronal es la neurona. Una neurona no es más que una función de transferencia que a partir de un número de entradas calcula una única salida. Estas entradas están ponderadas de manera que cada una de ellas lleva asociada un peso (constante por la que se multiplica su valor) que representa la importancia que tiene la entrada en la salida de la neurona. Los parámetros necesarios para definir el funcionamiento de una neurona son: Número de entradas N Pesos de las entradas W1, W2, … WN Función de transferencia F(H)
www.grupoempresarialer.com
Los pesos de las entradas son los que el algoritmo de aprendizaje ajustará para que la red neuronal proporcione las salidas adecuadas. Existen diferentes tipos de funciones de transferencia:
www.grupoempresarialer.com
Las funciones de transferencia tienen salidas comprendidas en el intervalo [0,1] o en el intervalo [-1,1]. Este se debe a que las neuronas deben de trabajar con datos comprendidos en un intervalo determinado, dado que todas las entradas a una red neuronal deben de estar normalizadas respecto a una determinada distribución. Lo corriente es normalizar todas las entradas a la red neuronal respecto a una distribución de media 0 y desviación típica1. La necesidad de realizar esta normalización es lógica pues todas las entradas deben de partir con la misma importancia y serán los pesos de las neuronas los que establezcan dicha importancia. La estructura típica de una red neuronal es la del perceptrón multicapa. Esta red neuronal está compuesta por un conjunto de neuronas organizadas en capas. Cada capa tendrá un número determinado de neuronas y todas las neuronas de una capa tendrán la misma función de trasferencia. Las neuronas de una capa se conectan a las de la capa siguiente (las neuronas de una capa (n-1) envían sus salidas a las neuronas de la capa n que las tomarán como entradas).
www.grupoempresarialer.com
Se debe dar valores a los pesos de la red neuronal. Estos valores se obtendrán del proceso de entrenamiento. Este proceso consiste en proporcionar un conjunto de muestras a la red neuronal, de tal manera que ésta adapta el valor de los pesos para minimizar el error en la salida.
www.grupoempresarialer.com
IMPLEMENTACIÓN NN -Crear un conjunto de neuronas y dentritas -Recorrer todas las neuronas y asignar un valor aleatorio a sus respectivos Bias -Recorrer todas las dentritas y asignar a sus respectivos Weight un valor aleatorio - Asigno a todas las neuronas de entrada los valores indicados en la matriz de entrada. Para otro tipo de neuronas el valor asignado es cero ya que hay que calcular ese valor - Para cada capa oculta (también para la capa de salida el valor es la suma de los valores de las capas anteriores multiplicado por el peso de las dentritas - El valor resultante se suma al valor del Bias (sesgo) - Paso el valor resultate a la función de activación - Muestro los valores de las neuronas de salida como resultados finales
Entrenamiento: método de retropopagación Imputdata matriz de entrada de la muestra Outputdate Salida que debiera ser Ejecuto Imputdata como entradas y tengo todos los valores de las neuronas individuales Recorro de la última a la primera capa Calculo la diferencia entre los valores de salida producidos y los deseados Con estas diferencias ajusto el Bias y Weight SE DEBE REPETIR MUCHAS VECES PARA QUE LA NN PRODUZCA RESULTADOS PRECISOS
www.grupoempresarialer.com
Tipos de redes neuronales Existen diferentes tipos de redes neuronales según la estructura en la que están organizadas las neuronas. Redes de propagación hacia delante (feedforward) Fueron las primeras redes en ser diseñadas. La información se mueve hacia delante, desde los nodos de entrada a los de salida. Es el tipo de red neuronal que se utiliza para la predicción de series temporales. Las redes neuronales de este tipo tienen la ventaja de que son las más rápidas en ejecutarse. Por otro lado tienen el inconveniente de que su entrenamiento es lento sea cual sea el tipo de entrenamiento que realicemos. Existen muchas estructuras de redes neuronales de propagación hacia delante, pero la que más utilidad tiene y más se ha desarrollado es el perceptrón multicapa. El perceptrón multicapa es una red neuronal de propagación hacia delante en la que las neuronas están organizadas en capas.
www.grupoempresarialer.com
Redes recurrentes Estas redes están formadas por muchas neuronas fuertemente interconectadas. Se utilizan para el desarrollo de memorias asociativas que tratan de simular el cerebro humano. Se les denomina memorias por el hecho de que la salida de este tipo de redes depende no sólo de las entradas actuales sino también de las entradas anteriores y del estado en el que se encuentra la red. La red neuronal más conocida de este tipo es la red neuronal de Hopfield. Esta red está constituida por un conjunto de neuronas cada una de las cuales está unida a todas las demás, la conexión es tal que cada neurona recibe información de todas las demás y emite información a todas las demás. En estas redes el flujo de información es bidireccional, es decir, va de las entradas a las salidas y viceversa.
www.grupoempresarialer.com
Redes estocásticas Estas redes neuronales se caracterizan por tener conexiones aleatorias entre las neuronas. La red más conocida de este tipo es la red neuronal de Boltzmann.
www.grupoempresarialer.com
Redes modulares Estas redes están compuestas por distintos conjuntos de redes que cooperan unas con otras para resolver un mismo problema. Este tipo de red es el que más se aproxima al sistema neuronal biológico.
www.grupoempresarialer.com
Tipos de entrenamiento Entrenamiento supervisado: En este tipo de entrenamiento se le proporciona a la RNA una serie de ejemplos consistentes en unos patrones de entrenamiento que consisten en pares de entradas con sus correspondientes salidas (ejemplos de cómo se quiere que funcione la red neuronal). El proceso de entrenamiento consistirá en ajustar los pesos para que la salida de la red sea lo más parecida posible a la salida deseada (teórica). Entrenamiento no supervisado: En este tipo de entrenamiento se presenta a la red una serie de ejemplos pero no se presenta la respuesta deseada. Lo que hace la RNA es reconocer regularidades en el conjunto de entradas, es decir, estimar una función densidad de probabilidad p(x) que describe la distribución de patrones x en el espacio de entrada Rn. Entrenamiento híbrido: Es una mezcla de los anteriores. Unas capas de la red tienen un aprendizaje supervisado y otras capas de la red tienen un aprendizaje de tipo no supervisado. Entrenamiento recurrente: Es un entrenamiento en el que no se proporciona una salida deseada, sólo se indica si la salida es correcta o no, pero no indica en cuánto se diferencia de la salida buscada.
www.grupoempresarialer.com
La predicción de series temporales es un problema de aproximación en el que se va a utilizar un entrenamiento supervisado, por lo tanto, a la red se le proporcionará una serie de vectores de entradas y salida de datos históricos. Para calcular los pesos de la red neuronal se resuelve el siguiente problema de optimización:
www.grupoempresarialer.com
En cada periodo se tendrá un vector 𝑃 de entradas formado por ne (número de entradas) componentes. Cada neurona tiene una serie de pesos (W‟s) asociados a sus entradas y una bia. Cada neurona posee un término bias, que constituye la predisposición de la neurona a activarse. Puede haber pesos que nunca se actualicen durante el entrenamiento por empezar muy alejados de su valor óptimo, cuando los pesos no se actualizan correctamente, pueden existir neuronas que apenas tengan entradas y no cooperen a la resolución del problema. Para solucionar este problema se utiliza el término bias, que es un valor que se añade a la suma ponderada de las entradas a una neurona que trata de solucionar este problema incrementando su valor en neuronas con poca participación y reduciendo su valor en neuronas con mucha participación, tratando de igualar la participación de todas las neuronas de una capa. www.grupoempresarialer.com
www.grupoempresarialer.com
Modelado de la red neuronal Tipo de red neuronal (perceptrón multicapa) es necesario establecer los siguientes parámetros de la red neuronal: Algoritmo de entrenamiento Funciones de transferencia Número de capas Número de neuronas en cada capa Algoritmo de entrenamiento Algoritmo de Levenberg-Marquardt Funciones de transferencia Los mercados financieros son no lineales y tienen memoria, por esto las funciones de transferencia más apropiadas son las funciones sigmoideas, ya que son no lineales y continuamente diferenciables. El uso de funciones de transferencia no lineales no implica la suposición de independencia lineal de los patrones de entrada. Por otra parte la última capa (cuya salida será un valor único correspondiente a la predicción) será una función lineal, para que realice una salida ponderada a partir de las salidas que han proporcionado todas las neuronas de las capas anteriores.
www.grupoempresarialer.com
Número de capas Hasta ahora no se han publicado estudios de perceptores multicapa con más de dos capas ocultas.
Número de neuronas en cada capa El número de neuronas de la capa de entrada viene fijado por el número de entradas que se ha escogido (30 en este caso). Por otro lado la capa de salida tendrá una única neurona, ya que sólo se tiene una salida (Correspondiente al valor que está siendo predicho). Existen criterios heurísticos para determinar el número de neuronas de las capas ocultas a partir del número de entradas a la red neuronal, nunca superando el doble de estas. El número de neuronas de una segunda capa oculta tiene un menor efecto sobre la predicción que el número de neuronas de la primera capa oculta. Para escoger el número de neuronas de las distintas capas no hay otra manera que recurrir a www.grupoempresarialer.com pruebas experimentales.
www.grupoempresarialer.com
www.grupoempresarialer.com
www.grupoempresarialer.com
www.grupoempresarialer.com
SISTEMAS PREDICTIVOS. PREDICCIÓN DE MERCADOS FINANCIEROS
Los datos usados son series temporales. Esto es, son observaciones sobre una misma variable en diferentes momentos del tiempo. El hecho de que una serie temporal esté compuesta de datos sobre una misma variable (o grupo de variables) a lo largo del tiempo significa que quizás sea posible usar el valor de la variable hoy para predecir algo sobre esta misma variable en un punto del futuro. Un punto importante es el relativo al riesgo/beneficio, y por ello, predecir únicamente el cambio en el precio de un activo es solo una parte del problema. Puesto que siempre tratamos de evitar el riesgo, también nos preocupamos de predecir el riesgo, medido de alguna forma, por lo que también es muy interesante poder hacer predicciones de otras propiedades como pueden ser: La volatilidad del activo. La probabilidad de una crisis en el mercado(`crash'). La correlación o dependencia entre distintos activos financieros· La duración del precio (es decir el tiempo entre dos operaciones consecutivas que hagan variar el precio de un activo). Por ejemplo: a la hora de predecir la distribución de la horquilla de precios oferta−demanda (bid−ask) para ciertos activos (definido como el precio de venta menos el precio de compra). Esta variable es usada a menudo como una medida de la liquidez obviamente también sería muy interesante obtener una predicción futura de este valor. La teoría económica básica nos dice que este valor debe ser siempre positivo y haciendo uso de esta información podemos construir un modelo predictivo mucho mejor.
www.grupoempresarialer.com
GRACIAS
www.grupoempresarialer.com
TALLER ONLINE DE TRADING ALGORÍTMICO Preinscripción: http://www.grupoempresarialer.com/formacion-4/
SÁB 11H – 13 H. DÍA 4 DÍA 11 DÍA 18 DÍA 25
325 € Iva Incl.
www.grupoempresarialer.com