scieee AI-readable full text Open interactive document viewer

Las redes neuronales en su aplicación a las finanzas

Jiménez Caballero, José Luis; Ruiz Martínez, Ramón Jesús

Full text

0 LAS REDES NEURONALES EN SU APLICACIÓN A LAS FINANZAS Ruiz Martínez, Ramón Jesús Jiménez Caballero, José Luis Universidad de Sevilla INDICE: 1. ¿Qué son las redes neuronales? 1.1. Introducción 1.2. Concepto y descripción 1.3. Funcionamiento de los sistemas neuronales artificiales 2. ¿Cómo diseñar una aplicación? 3. ¿Cuándo es útil la aplicación de RNA? 4. Aplicaciones de las RNA 5. Sistemas neuronales empleados en los mercados financieros de renta variable 6. Aplicación práctica de las redes neuronales al mercado financiero español 1 1. ¿QUÉ SON LAS REDES NEURONALES? 1.1.Introducción. El ser humano en su intento de captar y medir la realidad circundante ha tratado de realizar una cuantificación de la misma, tradicionalmente, mediante la aplicación de representaciones matemáticas. De esta forma, la compleja realidad ha intentado ser introducida en la horma establecida por los modelos existentes, en ocasiones, con tal rigidez en sus planteamientos que no ha sido posible emularla con un mínimo de precisión. Lo único que se ha conseguido con ello es adaptarse a los fallos que presentan los modelos, cuando lo razonable debería ser apostar por el diseño de nuevos patrones más ajustados a nuestro objetivo final. Ahora bien, teniendo en cuenta que los sistemas físicos han tenido un desarrollo, desde el punto de vista de su comprensión, bastante superior al logrado por otras disciplinas como las ciencias sociales o económicas; y que de la observación de un sistema social o económico podríamos colegir la misma estructura de comportamiento que la percibida en uno físico o biológico; es decir, altamente organizada, realimentada y no lineal Forrester, 1998, la construcción de modelos que aprovechen las potencialidades y ventajas de los sistemas biológicos (p.e. el funcionamiento del cerebro humano) podría constituir un avance en la búsqueda de una mejor representación del entorno presente. En este sentido, las redes neuronales artificiales (en adelante RNA) aparecen como una alternativa que trata de representar de manera adecuada una compleja realidad que presenta información masiva, redundante, imprecisa y distorsionada; unas veces, con mayor acierto que otros procedimientos, y otras, en las que habrá que guardar un mínimo de reserva ante sus resultados. Esta tecnología va a permitir la incorporación de inteligencia a un sistema de procesamiento y control, y contribuirá a la construcción de máquinas que emulen la capacidad humana de toma de decisiones en entornos imprecisos y con ruido. Ofrece, también, una nueva visión para el estudio de fenómenos cognitivos, pudiendo contribuir, de forma importante, a su comprensión Martín del Brío,1997. Nuestro propósito, por tanto, se dirige a intentar conocer el funcionamiento genérico de esta técnica, sus posibles aplicaciones en el área financiera y, más concretamente, en el ámbito de los mercados de valores de renta variable (predicción de cotizaciones, principalmente). Todo ello nos permitirá conocer la idoneidad y oportunidad de utilizar las RNA, en comparación a otros métodos conocidos. 1.2. Concepto y descripción. No existe una definición universalmente aceptada de RNA; así, autores como Hetch-Nielsen (1988) entienden por red neuronal artificial el “sistema de computación, formado de un gran número de elementos simples, altamente interconectados, y que procesan la información mediante respuestas dinámicas a unos estímulos externos”. En 2 este mismo sentido, T. Kohonen (1988) entiende las RNA como “redes en paralelo conectadas masivamente (normalmente adaptativas) de elementos simples y con organizaciones jerárquicas que son proyectadas para interaccionar con los objetivos del mundo real de la misma forma que lo hacen los sistemas nerviosos naturales”. Cox (1993) la define como “un sistema adaptativo que resuelve problemas mediante la imitación de la arquitectura de las redes neuronales naturales”. Terminaremos, con una definición aportada por Sigüenza, López y Dorronsoro (1993) donde se pone de relieve que una red neuronal “está formada por un conjunto de unidades que intercambian información cuyo resultado es un mensaje que envía a sus vecinas, pero que en conjunto es una computación bastante elaborada”. Se observa en estas definiciones que las RNA tienen como notas comunes, por una parte, la existencia de elementos simples que procesan información, y, por otra, que se produce una interconexión entre dichos elementos. Esta filosofía de proceso está inspirada en las ventajas que proporciona la estructura y funcionamiento del cerebro humano. Así, hasta hace poco tiempo, se hacía bastante difícil el planteamiento y solución de un problema complejo con la mera existencia de ordenadores, en los que la estructura hardware se constituía en torno a un único microprocesador complejo (CPU) que organizaba y procesaba, de forma secuencial, la información que le suministraba la memoria. La estructura hardware del cerebro humano se compone, sin embargo, de miles de millones de pequeños procesadores simples, llamados neuronas, de menor potencia que la CPU, que interactuando en paralelo logran solucionar problemas que no están al alcance de los ordenadores. De este modo, considerando que hay aspectos donde el cerebro humano es capaz de realizar funciones con una eficacia y precisión superiores a cualquier computadora, la creación de una estructura de interconexión multineuronal podría ayudarnos a emular las habilidades del mismo. En este sentido, las redes neuronales artificiales son modelos simplificados que tratan de imitar la estructura y funcionamiento de las redes neuronales biológicas, y cuyos componentes fundamentales son las neuronas artificiales. Siguiendo a Martín del Brío (1997), las tres características que las RNA van a tratar de copiar de los sistemas nerviosos biológicos consisten en el procesamiento en paralelo, la memoria distribuida y la adaptabilidad. En cuanto al primer aspecto, la actuación de las neuronas en paralelo garantiza mayor rapidez en el proceso de información que la aportada por una operación secuencial, realizada instrucción a instrucción. En segundo término, los sistemas neuronales poseen información que se distribuye ampliamente por toda la red. De este modo, cualquier deterioro neuronal afectaría mínimamente al sistema y, teniendo en cuenta que las redes nerviosas biológicas son redundantes, podríamos encontrar información acumulada en otras neuronas. En último lugar, las RNA deben adaptarse al entorno. Para ello el aprendizaje a partir de ejemplos debe permitirles modificar el peso de las conexiones neuronales para lograr una generalización del problema a tratar. 3 Una vez fijados el concepto y algunas características fundamentales de las Redes Neuronales, vamos a realizar una descripción general de sus elementos constitutivos básicos y de su funcionamiento. 1.3. Funcionamiento de los sistemas neuronales artificiales La estructura de una RNA está compuesta, en primer lugar, por un elemento esencial, la neurona artificial, que se configura como un elemento de cálculo básico que recibe información del exterior o de otras neuronas, y se transforma en una salida única. La neurona artificial (fundamentada en su homónima biológica) tiene una estructura de entradas, las dendritas, por las cuales accede información al cuerpo celular o soma, el cual procesa y responde al estímulo recibido, en función de la intensidad asignada al nexo de unión entre las entradas y la neurona 1 . La respuesta de la neurona producirá una salida por el denominado axón (figura 1). Según el procesamiento que haga una neurona de la información recibida, podrá enviar una respuesta a la siguiente, o por el contrario no hacerlo. Ello dependerá del peso sináptico asignado a cada entrada, es decir, de la ponderación o importancia relativa asociados al estímulo recibido. Peso sináptico NEURONA Entradas Salida x1 xj xn wi1 wij win Dendrita Axón yi i Figura 1: Neurona Artificial Las neuronas se agrupan en estructuras unitarias denominadas capas, donde se produce una conexión de los niveles anteriores con los posteriores mediante la unión axón-dendrita. Así, la primera capa de la red, la de entrada, será diseñada en función de los datos externos ligados al problema, y dirigirá su salida hacia la siguiente; a continuación pueden aparecer capas intermedias u ocultas sin conexión con el entorno e interconectadas con las precedentes y siguientes, cuyo número dependerá de la dificultad asociada al problema planteado; finalmente existe una capa de salida cuya constitución y resultado debe responder al problema propuesto. De esta forma, el conjunto de capas e interconexiones se constituye en la arquitectura o topología de la red neuronal. 1 Este nexo se denomina sinapsis, y a la graduación que se le asigna, peso sináptico. 4 Por otro lado, es necesario dotar a la red de una regla o algoritmo de aprendizaje que vaya ajustando, progresivamente, los resultados finales de la red a los deseados por el diseñador de la misma. El conjunto de entradas, salidas, red o topología neuronal y algoritmo de aprendizaje utilizados formará un sistema neuronal (véase figura 2). E N T R A D A S S A L I D A S CAPA DE ENTRADA CAPA DE SALIDA CAPA OCULTA CAPA OCULTA Algoritmo aprendizaje Figura 2: Estructura de un sistema neuronal artificial de cuatro capas Pero entremos más detenidamente a observar el funcionamiento de un sistema neuronal. La unidad elemental del sistema, la neurona, recibe unas entradas, xj, sobre las que actúa una matriz de pesos iniciales aleatorios, wij, obteniéndose unos valores yi, (ver figura 1) como resultado de aplicar una función de entrada. Su forma más habitual es la lineal 2 , que se basa en la suma ponderada de las entradas por los pesos sinápticos: y w x jij jj  Este resultado debe ser filtrado a través de una función de activación o transferencia que convierte la resultante en unos valores que están dentro de unos límites de salida, y que servirá como dato de entrada a la siguiente neurona o capa. Con ello, se logra modificar los niveles de salida -que podrían ser muy amplios, e incluso infinitospara que alcancen valores razonables y finitos (v.g. entre cero y uno) 3 . Asimismo, la no linealidad que puede mostrar la estructura de esta función reporta 2 Se pueden encontrar otros tipos como la función radial básica, función sigma pi, distancia L1, L2, etc. 3 Cuando la función alcance el valor cero no se transmitirá ninguna señal a la siguiente neurona, que sólo será activada en caso de que el valor se haga uno. 5 ventajas a las redes neuronales sobre los sistemas de regresión clásicos, enriqueciendo su capacidad de representación. Las funciones más habitualmente utilizadas suelen ser la de identidad, escalón o limitador, umbral o lineal a tramos y sigmoide. Otras funciones típicas son la gausiana, de cauchy, sinusoide y arco tangente. En ocasiones, podremos encontrar un umbral o límite, en la función de activación, que puede ser entendido como el nivel de excitación de la neurona. Cuando se sobrepasa el valor asignado al umbral, la neurona se activa; y en caso contrario, permanecerá inhibida 4 . Una vez conocido el funcionamiento de una neurona artificial convendría hacer una descripción de los principales tipos de arquitectura que configuran el diseño de un sistema neuronal y los modelos más habituales de aprendizaje. En primer lugar, vamos a entender por arquitectura de una RNA al conjunto de elementos formado por la topología o estructura de conexionado sináptico existente entre sus neuronas, tipo de neurona, número de capas, número de neuronas por capa, etc. Las conexiones entre neuronas o capas pueden dar lugar a redes unidireccionales, donde la información fluye en un único sentido; o a redes recurrentes, donde la información discurre en cualquier sentido y dirección. El número de capas puede dar lugar a redes monocapa, donde sólo existe una única capa o redes multicapa Martín del Brío,1997. En la figura 2 puede apreciarse una arquitectura de red multicapa con cuatro de ellas, y conexiones unidireccionales. Un aspecto básico de las RNA reside en su capacidad para aprender a partir de ejemplos relacionados con la cuestión planteada. Para ello, la red necesita de un proceso de aprendizaje o entrenamiento, que es iterativo, en el que deberá utilizar un algoritmo que modificará los pesos sinápticos de la red (que reflejan el aprendizaje alcanzado hasta ese momento) hasta que la discrepancia promedio entre sus resultados y los correctos vaya decreciendo y se llegue al rendimiento deseado. Posteriormente, la red deberá ser capaz de asociar a las entradas reales, los resultados que defina el proceso de entrenamiento anterior, es decir, deberá aprender a generalizar. Para comenzar el proceso de aprendizaje deberá, en primer lugar, elegir la arquitectura de red más adecuada a nuestros propósitos, para, seguidamente, establecer los pesos sinápticos iniciales, que suelen ser valores aleatorios o nulos. A continuación habrá que escoger el algoritmo de aprendizaje más apropiado (existen más de cien); y en último lugar, comenzar con el entrenamiento de la red. Los tipos de aprendizaje más utilizados y extendidos son el aprendizaje supervisado y el aprendizaje sin supervisión. En el aprendizaje supervisado se presentan unos patrones de entrada asociados a la salida objetivo; la red deberá ir ajustando sus pesos hasta que la salida sea la deseada. La información de los errores cometidos refuerza los pesos cuando estemos ante clasificaciones correctas y los inhibe en caso contrario. En el no supervisado se 4 Por ejemplo, si el umbral se sitúa en 0,5, todo valor de la función que supere dicha cifra se convertirá en uno. Por el contrario, el que no la alcance la hará cero. 6 presenta la entrada pero no la salida deseada. El sistema deberá clasificar las entradas y salidas en base a su similitud con otras entradas. Este tipo de aprendizaje, contiene reglas menos complejas que el anterior aunque su precisión también es menor. Su utilidad se aprecia cuando no sabemos qué salida deberá asociarse a una entrada determinada. Una vez terminado el proceso de entrenamiento y alcanzado el aprendizaje, el sistema queda preparado para recibir y procesar entradas reales del entorno, con objeto de obtener los resultados que puedan ayudar a resolver el problema considerado. Por tanto, según la descripción realizada hasta el momento, y en función del diseño que se haya hecho de un sistema neuronal determinado (tipo de neurona, arquitectura de conexiones y algoritmo de aprendizaje utilizados), podremos encontrar diferentes y numerosos modelos que resumimos en los siguientes: * Modelo de McCulloch-Pitts * Perceptrón de Rosenblatt * Adaline (ADAptative LINear Element) de Widrow * Matriz adaptativa de Steinbuch * Perceptrón multicapa o backpropagation * Cognitron de Fukushima * Redes de Regresión Generalizada de D. Specht: GRNN (General Regression Neural Network), * Máquina de Boltzmann, * Correlación en cascada * Teoría de la resonancia adaptativa de Grossberg y Carpenter: ART 1, 2, 3, Fuzzy Art, Artmap, Fuzzy Artmap. * Red de Hopfield, * Mapas autoorganizativos de Kohonen, * Neocognitrón, * Contrapropagación de Hecht-Nielsen Quizás el modelo más popular y utilizado (también en finanzas) sea el perceptrón multinivel o multicapa (Multilayer Perceptron) de Rosenblatt, entre otros motivos, por considerarse un aproximador universal de funciones: Consta de múltiples capas interconectadas entre sí, aunque no existen conexiones entre elementos de la misma capa. La información viaja de forma unidireccional desde la entrada, pasando por las capas ocultas y terminando en la salida. Únicamente durante el proceso de aprendizaje la información puede ir hacia atrás con intención de ajustar las ponderaciones asignadas inicialmente a las neuronas (aleatorias con valores pequeños: positivos o negativos). Utiliza el algoritmo de aprendizaje LMS (Least Mean Square) de Widrow o el de retropropagación de errores (backpropagation) de Werbos. Este último algoritmo -el más divulgado-, parte de una muestra de ejemplo y calcula el error de salida. A partir de dicho error actualiza los pesos de salida y, posteriormente, propaga hacia atrás los errores a través de las sinapsis. De este modo, se obtienen las señales de error que corresponden a las capas ocultas y se pueden actualizar sus sinapsis. 7 Habitualmente, se utiliza al mismo tiempo una muestra de entrenamiento y otra de test para entrenar y validar la red, hasta llegar al punto óptimo, en un proceso denominado validación cruzada. Este proceso es iterativo y cuando termina, los pesos sinápticos quedan fijos y el comportamiento de la red ya no cambia hasta que vuelva a ser reentrenada. La arquitectura más habitual de este modelo de red: una capa oculta, función de entrada para las salidas de forma lineal, y función de activación sigmoidal. 2. ¿CÓMO DISEÑAR UNA APLICACIÓN? El diseño de una red neuronal presenta similitudes con los procedimientos empleados en la programación clásica de aplicaciones informáticas, aunque también posee sus especificidades. A continuación y siguiendo las clasificaciones propuestas por Martín del Brío y F. Casacuberta podríamos establecer las siguientes etapas: 1) Plantear o definir el problema a resolver Tendremos que definir con claridad qué problema queremos resolver, con qué información contamos, y cómo se estructura esta última. Ello nos permitirá reconocer si la técnica más recomendable para la totalidad de nuestro problema es la de las RNA; si puede aplicarse a alguna parte del mismo; o, por el contrario, es conveniente rechazar su aplicación. 2) Elegir el sistema neuronal Una vez identificado el problema propuesto convendrá elegir el modelo de red 5 , los datos de entrada y número de éstas, las salidas, y el algoritmo de aprendizaje que se adapten mejor a las características observadas en el mismo. En cuanto a las entradas a considerar, tanto la elección de muchas como de pocas variables puede contribuir a una débil generalización. Lo aconsejable es una selección representativa, medida y adecuada. 3) Preprocesamiento Los datos de entrada y salida de una red neuronal suelen ser heterogéneos en cuanto a su distribución, variabilidad y rangos de valores. Para conseguir que las entradas y salidas sean relevantes en función de su significación real, y ello no dependa de la forma de presentación al sistema neuronal, se realiza un preprocesamiento de los datos. Ello consiste en la transformación de las entradas y salidas de la red, para que puedan ser tratadas de manera adecuada por el sistema. Normalmente, se suelen estandarizar los datos, haciéndose un cálculo de media cero y varianza uno para todos ellos, y acotándolos en un mismo intervalo (por ejemplo (0,+1)), que suele coincidir con el de las funciones de activación empleadas en las capas ocultas y de salida de la red. 5 Las arquitecturas más utilizadas son, como ya se indicó anteriormente, el perceptrón multicapa y, también, los mapas autoorganizados de Kohonen. 8 4) Fase de aprendizaje y test de generalización En la fase de aprendizaje se realiza el procesamiento de los datos de la fase anterior con ayuda de un algoritmo. Para ello, deben suministrarse al sistema los ejemplos necesarios que permitan describir las situaciones que se presentarán posteriormente en la realidad. En ciertos modelos, como el perceptrón multicapa, se utiliza normalmente una muestra de datos para el aprendizaje de la red, y otra similar para el test de comprobación del nivel de aprendizaje. Esta etapa terminará cuando los errores de generalización sean mínimos y el modelo se adapte al problema presentado. Para ello, es conveniente probar diferentes topologías y algoritmos de aprendizaje hasta encontrar los más adecuados. Finalmente, si una vez terminadas las etapas precedentes, no se obtienen las salidas deseadas por el creador de la red, sería conveniente revisarlas, ya que puede que el problema no consiga resolverse por esta técnica, o que las entradas no sean las más adecuadas, o no hayan sido bien preprocesadas, o que las muestras de ejemplo no sean representativas, o que el modelo de red no sea conveniente, etc. 5) Fase de operación La red se halla en disposición de aplicar el conocimiento adquirido sobre casos nuevos no presentados hasta el momento. Así podremos evaluar si los resultados se mantienen con márgenes de error aceptables. Si ello ocurre el modelo puede ser empleado para solucionar nuestro problema. 3. ¿CUÁNDO ES ÚTIL LA APLICACIÓN DE RNA? Una vez conocidos de forma genérica los fundamentos que definen a las RNA sería interesante descubrir en qué ámbitos o para qué problemas su utilización podría constituir una técnica más adecuada que otros procedimientos convencionales. Al mismo tiempo intentaremos mostrar los aspectos negativos que desaconsejan su aplicación. En cuanto a los aspectos favorables:  Las RNA no requieren un conocimiento muy profundo para ser formalizadas. Son apropiadas en ámbitos donde el conocimiento es escaso, donde existe información con ruido, imprecisa, incoherente, difusa o borrosa, incierta, contradictoria y errónea, con gran número de entradas y variables correlacionadas, hechos todos característicos de las aplicaciones financieras. Son, por ello, útiles cuando queremos interpretar relaciones entre una gran cantidad de variables y no conocemos con mucha precisión sus reglas de dependencia ni las del problema. Ello nos va a permitir modelizar las funciones de un sistema del que no percibimos su funcionamiento interno y que no exhibe fuertes relaciones fundamentales ni definidas entre sus variables. 15 arcotangente bipolar (entre –1 y +1), excepto para la salida que fue la de seno bipolar (- 1,+1). La tolerancia de error para las salidas del sistema (rentabilidades diarias) con respecto a las salidas deseadas se situó en 0,2%, siendo el error tipo empleado por la red el cuadrático medio (Mean Square Error). 4) Fase de aprendizaje y test de generalización Con referencia al número de observaciones, hubo casos en los que las muestras utilizadas en el entrenamiento fueron de hasta 750 (máximo admitido por la red) y en otros de unas 478, correspondiendo a dos años de datos. Por su parte, en el test hubo diseños con dos años de observaciones y otros con un 15% de los datos usados en la fase de entrenamiento. Con este diseño e información, la red fue detenida utilizando la validación cruzada, justo cuando las prestaciones de la red aplicadas al test empezaban a empeorar. A partir de aquí los resultados obtenidos por los diseños practicados no son satisfactorios. El error cometido en el entrenamiento es muy amplio. Después de realizar múltiples variaciones en el diseño: elegir menos entradas; cambiar las funciones de transferencia y entrada; o cambiar de algoritmo; los errores cometidos seguían siendo altos. Paradójicamente el diseño que mejores resultados ofreció fue aquél que empleaba las cinco variables originales con el valor de cierre del mismo día que estimaba, de modo que el error de entrenamiento se situó en un 0,0019, el de test en 0,0098, las respuestas de la red que quedaban dentro del margen de error fueron en el entrenamiento del 78,41% y en el test del 38,22%. Para el resto de diseños y combinaciones todos los resultados fueron peores que los reseñados anteriormente, por lo cual después de horas y horas de prueba decidimos terminar nuestra labor, sin haber encontrado en nuestro ámbito de estudio buenos resultados aplicando la teoría de las redes neuronales. A la vista de los resultados obtenidos en todo el estudio, si bien, como comentamos más arriba, se trata simplemente de una experiencia particular y no generalizable, hemos creído oportuno seguir profundizando en otras técnicas, con más contenido lógico y racional. No dudamos que las redes neuronales puedan ser aplicadas con éxito en otros campos científicos, incluso afines al nuestro; sin embargo, tenemos nuestras reservas en su aplicabilidad directa a nuestro ámbito. 16 BIBLIOGRAFÍA: Apostolos y Refenes, P. (1995): Neural Networks in the Capital Markets, London Business School, England, A Wiley Finance Edition. Baestaens, D. y Van den Bergh, W.: “Tracking the Amsterdam Stock Index Using Neural Networks”, publicado en Neural Networks in the Capital Markets, London Business School, England, A Wiley Finance Edition, 1995. Bosarge, W. (1991): “Adaptive Processes to Exploit the Nonlinear Structure of Financial Markets”, Santa Fe Institute of Complexity Conference; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1992. Casacuberta, F. (1998): “Redes Neuronales Artificiales”, Novática, nº131, enerofebrero, pp. 15-17. Cox, E. (1993): “Adaptative Fuzzy Systems. (Advance Technology & Controls)”. IEEE Spectrum, pp.27-31 De la Fuente , D. y Pino, R. (1996): “Aplicación de sistemas expertos y redes neuronales en organización…”, Esic Market, octubre-diciembre, pp-173-179. Forrester, J.W. (1998): “Diseñando el futuro”, en Lección Magistral para la investidura como Doctor Honoris Causa por la Universidad de Sevilla, pp.19-30. Gately, E. (1996): Neural Networks for Financial Forecasting, John Wiley & Sons, Inc., New York. Gento, A.M. y Del Olmo, R. (1994): “Redes Neuronales Fuzzy en la gestión de empresas”, Anales de Estudios Económicos y Empresariales, pp. 37-71. Hetch-Nielsen, R (1988): “Neurocomputing: picking the human brain”, IEEE Spectrum, March. Hiemstra, Y. y Haefke, C.: “Two Multilayer Perceptron Training Strategies for LowFrequency S&P 500 Prediction”, publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. 17 Jain, B. y Nag, B.: “Artificial Neural Network Models for Pricing Initial Public Offerings”, publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. Kimoto, T., Asakawa, K., Yoda M., y Takeoka M. (1990): “Stock Market Prediction System with Modular Neural Networks”, Proceedings of the IEEE International Joint Conference on Neural Networks, pp. I1-I6; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. Kryzanowski, L., Galler, M., y Wright, D.(1993): “Using Artificial Neural Networks to Pick Stocks”, Financial Analyst Journal, July/August; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996 Márquez, L., Hill, T., Worthley, R., y Remus, W. (1991): “Neural Network Models as an Alternative to Regression”, Proceedings of the IEEE 24th Annual Hawaii International Conference on Systems Sciences, vol. VI, pp.129-35; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. Martín, B. y Sanz, A. (1997): Redes Neuronales y Sistemas Borrosos, Editorial Ra-Ma, Madrid. Moreno García, A. (1998): Los Sistemas Expertos y su aplicación a la gestión empresarial. Tesis doctoral. Departamento de Economía Financiera y Dirección de Operaciones. Universidad de Sevilla. Sigüenza, J.A., López, V., y Dorronsoro, J.R. (1993): “Redes Neuronales, de la investigación básica a las aplicaciones industriales, Chip, Abril, pág.66. Sellés, M. (1995): “Las redes neuronales: un sistema de computación de múltiples aplicaciones para las empresas”, Novática, nº114, marzo-abril, pp.73-79. Serrano, C. y Gallizo, J.L. (1996 ): “Las redes neuronales artificiales en el tratamiento de la información financiera”, http://ciberconta.unizar.es/Biblioteca/0004/SerGall96.html Sharda, R. y Patil, R. (1992): “A Connectionist Approach to Time Series Prediction: an Empirical Test”, Journal of Intelligent Manufacturing; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. Steiner, M. y Wittkemper, H.: “Neural Networks as an Alternative Stock Market Model”, publicado en Neural Networks in the Capital Markets, London Business School, England, A Wiley Finance Edition, 1995. Trippi, R. y DeSieno, D. (1992): “Trading Equity Index Futures with a Neural Network”, Journal of Portfolio Management 18, nº15, pp.27-33; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. 18 Trippi, R. y Turban, E. (1992): Neural Networks in Finance and Investing: Using Artificial Intelligence to Improve Real-World Performance, Irwin Professional Publishing, New York.  (1996): Neural Networks in Finance and Investing: Using Artificial Intelligence to Improve Real-World Performance, Irwin Professional Publishing, New York. Tsiburis, G. y Zeidenberg, M.: “Testing the Efficient Markets Hypothesis with Gradient Descent Algorithms”, publicado en Neural Networks in the Capital Markets, London Business School, England, A Wiley Finance Edition, 1995 White, H. (1988): “ Economic Prediction using Neural Networks: The case of IBM Daily Stock Returns”, Proceedings of the IEEE International Conference on Neural Networks, pp. II-451-II-458; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996. Yoon, Y. y Swales, G. (1991): “Predicting Stock Price Performance: a Neural Network Approach”, Proceedings of the IEEE 24th Annual International Conference on Systems Sciences, pp.156-62; publicado en Neural Networks in Finance and Investing, Irwin Professional Publishing, New York, 1996.