Capítulo 4 Clasificadores para el análisis de datos financieros En este capítulo se presentan los fundamentos matemáticos básicos sobre optimización convexa, y que son necesarios para comprender el funcionamiento de las herramientas de clasificación que se utilizarán en este proyecto. En la bibliografía que trata el tema de la optimización convexa se encuentran habitualmente explicaciones sobre conjuntos y funciones convexas, por lo tanto se comienza explicando estos conceptos para fijar la forma en que se plantean los problemas de optimización. A continuación se describen dos de las múltiples aplicaciones que derivan de la optimización convexa y que son las herramientas empleadas en el proyecto, la clasificación lineal y la regularización de problemas inversos o sistemas lineales. Para la redacción de este apartado se ha utilizado como referencia fundamental el libro [2] de la bibliografía así como [A.5]. 4.1 Introducción a la optimización convexa 4.1.1 Optimización matemática Al hablar de un problema de optimización matemática, sea o no convexo, lo que se persigue es minimizar una función objetivo con unas restricciones dadas. Por lo 61 4.1 Introducción a la optimización convexa tanto el problema queda definido como, Donde es la función objetivo y representa el coste de elegir un determinado valor de , y las funciones de restricción son las que limitan el conjunto de valores de que pueden elegirse. Se busca por lo tanto un vector óptimo tal que tenga el menor valor, o menor coste, con respecto a cualquier otro vector que cumpla las restricciones del problema. Existen diferentes tipos de problemas de optimización, en los que se definen funciones objetivo y restricciones particulares. En este proyecto se trata el caso específico de problemas de optimización convexa, en los que tanto la función objetivo como las restricciones son funciones convexas, es decir, son funciones que verifican que para todo y todo Cuando se cumplen estas condiciones, existen métodos muy eficientes para resolver el problema planteado. 4.1.1.1 Problema de los mínimos cuadrados y programación lineal El problema de los mínimos cuadrados y la programación lineal, son casos especiales muy utilizados de optimización convexa que servirán de base para comprender la clasificación y regularización del siguiente apartado. 4.1.1.1.1 Problema de los mínimos cuadrados Un problema de mínimos cuadrados es un problema de optimización sin restricciones y que tiene una función objetivo que es la suma de los cuadrados de unos términos de la forma : 62 Proyecto Fin de Carrera Enrique Molleja donde son las filas de la matriz , y donde el vector es la variable que se quiere optimizar. Reconocer un problema de optimización de mínimos cuadrados es sencillo, únicamente se necesita verificar que el objetivo es una función cuadrática. La solución de un problema de mínimos cuadrados puede obtenerse mediante la resolución de un sistema de ecuaciones lineales como el siguiente, obteniéndose la solución analítica . El problema de mínimos cuadrados es la base para la estimación de parámetros, regresión, y diversos métodos de ajuste de datos. Por ejemplo puede utilizarse como estimador de máxima verosimilitud de un vector , cuando hay errores en las medidas de tipo Gaussiano. Puesto que el problema de mínimos cuadrados tiene una forma bien definida, ya que básicamente hay que verificar que la función objetivo sea una función cuadrática, se utiliza en muchas técnicas. Una de esas técnicas es la regularización, que se explicará más adelante. 4.1.1.1.2 Programación lineal Otro tipo importante de problema de optimización es la programación lineal, en el que el objetivo y las restricciones son lineales: Aquí los vectores y los escalares son parámetros del problema que especifican el objetivo y restricciones de la función. 4.1.2 Conjuntos convexos El estudio de la convexidad de conjuntos y funciones tiene especial relevancia a la hora de la búsqueda de los óptimos de las funciones, así como en el desarrollo de los algoritmos de resolución de los problemas de optimización, dado que cuando se verifique la convexidad del conjunto de valores de que satisfacen las restricciones del problema, se pueden desarrollar métodos de resolución eficientes para los problemas de optimización. 63 4.1 Introducción a la optimización convexa En este apartado se dan a conocer las condiciones que deben cumplir esos conjuntos en los problemas convexos. Se verán una serie de definiciones que serán de utilidad en los siguientes apartados. 4.1.2.1 Conjuntos afines y convexos Supongamos que son dos puntos de estos puntos viene definida por donde , entonces la línea que pasa por . Se dice que un conjunto es afín si la línea que une dos puntos cualesquiera del conjunto , está contenida en . Eso quiere decir que para cualquier par de puntos y , existe una línea . Por lo tanto contenidos en . contiene la combinación lineal de cualquier par de puntos Si se generaliza esta idea a un conjunto de puntos combinación afín de estos puntos en es un punto de la forma donde , que pertenece a . , una , Por ejemplo, el conjunto de soluciones de un sistema de ecuaciones lineales, , donde y , es un conjunto afín. El conjunto de todas las combinaciones de puntos de un conjunto llama la envoltura afín de , y se escribe . Se define el interior relativo de un conjunto como, donde la norma se en función de la envoltura afín de , es la bola de radio y centro en función de . Un conjunto es convexo si el segmento entre cualquier par de puntos contenidos en también pertenece a , es decir, si para un par de puntos y cualquier , se tiene que . Se dice que una combinación de puntos de la forma 64 , donde, Proyecto Fin de Carrera Enrique Molleja es una combinación convexa de los puntos . Un conjunto es convexo si y sólo si contiene todas las combinaciones convexas de sus puntos. La envoltura convexa de un conjunto , combinaciones convexas de los puntos de . , es el conjunto de todas las Como el nombre sugiere, la envoltura convexa es siempre convexa. Es el conjunto convexo más pequeño que contiene a . La idea de combinación convexas se puede extender a sumas infinitas, a integrales, y a distribuciones de probabilidad en su forma más general. 4.1.2.2 Ejemplos importantes 4.1.2.2.1 Hiperplanos y semiespacios Un hiperplano es un conjunto de la forma, donde y . Analíticamente se interpreta como el conjunto de soluciones de una ecuación lineal. Y en sentido geométrico, el hiperplano puede ser interpretado como el conjunto de puntos que tienen el mismo producto interno con el vector . Un hiperplano divide a conjunto de la forma en dos semiespacios. Un semiespacio cerrado es un Los semiespacios son convexos, pero no son afines. La frontera del semiespacio es el hiperplano, 65 4.1 Introducción a la optimización convexa 4.1.2.2.2 Elipsoides Una familia de los conjuntos convexos es la de los elipsoides, que tienen la forma o bien si , donde , es decir, es simétrica y definida positiva. El vector es el centro de la elipsoide. La matriz determina a que distancia se extiende el elipsoide en cada dirección de ; la longitud de los semiejes de vienen dados por , siendo los autovalores de . 4.1.2.2.3 Poliedros Un poliedro se define como el conjunto de soluciones de un número finito de igualdades y desigualdades lineales: Un poliedro es la intersección de un número finito de semiespacios e hiperplanos. Los poliedros son conjuntos convexos. Se puede expresar también en forma compacta de la siguiente manera donde, , , y el símbolo denota desigualdad vectorial o desigualdad por componentes en significa que para . : 4.1.2.3 Operaciones que conservan la convexidad A continuación se describen algunas operaciones que mantienen la convexidad en los conjuntos, o permiten construir conjuntos convexos a partir de otros. 66 Proyecto Fin de Carrera Enrique Molleja 4.1.2.3.1 Intersecciones Si los conjuntos y son convexos, entonces propiedad se extiende a un número infinito de conjuntos. es convexo. Esta Un ejemplo son los poliedros, que son la intersección de semiespacios e hiperplanos. Los semiespacios e hiperplanos son conjuntos convexos, por lo que los poliedros también lo son. 4.1.2.3.2 Funciones afines Una función es afín si es la suma de una función lineal y una constante, es decir, tiene la forma , donde y . Suponiendo que el conjunto es convexo y la función es afín , entonces la imagen de bajo la función , es convexa. Lo mismo ocurre con la imagen inversa de un conjunto convexo con una función afín. Como ejemplos de esta propiedad tenemos el escalado y la traslación. 4.1.2.4 Hiperplanos de separación y soporte 4.1.2.4.1 Teorema de los hiperplanos de separación En esta sección se describe el uso de hiperplanos o funciones afines para separar dos conjuntos convexos y que no presentan intersección entre sí. Cuando esto ocurre, existe un hiperplano definido en la forma que se denomina el hiperplano de separación para dichos conjuntos. El teorema de los hiperplanos de separación dice que, si se suponen dos conjuntos convexos y tales que no son intersecantes, es decir , entonces existen un y un tales que para todo y para todo . En otras palabras, la función afín es no positiva en y no negativa en . Cuando se satisfacen las condiciones de para todo y para todo . Se dice que existe una separación estricta de los conjuntos 67 y . 4.1 Introducción a la optimización convexa Ilustración 6: Separación de dos conjuntos mediante un hiperplano 4.1.2.4.2 Hiperplanos de soporte Suponer un conjunto mismo. tal que , y que es un punto en la frontera del Si a verifica que para todo , entonces el hiperplano se define como un hiperplano de soporte de en el punto . Esto es equivalente a decir que el punto y el conjunto están separados por el hiperplano . La interpretación geométrica es que el hiperplano tangente a en , y que el semiespacio contiene a es . Un resultado de esto es el teorema del hiperplano de soporte, que dice que para cualquier conjunto convexo no vacío , y cualquier perteneciente a la frontera de , existe un hiperplano de soporte de en el punto . 68 Proyecto Fin de Carrera Enrique Molleja Ilustración 7: Hiperplano de soporte en un punto de la frontera 4.1.3 Funciones convexas 4.1.3.1 Definición Una función se dice que es convexa si su dominio , es decir, los valores para los cuales la función está definida, es un conjunto convexo, y además si para todo y se cumple que, Se dice que es cóncava si es convexa. Una función es convexa, si y sólo si es convexa cuando nos restringimos a una línea que pasa por su dominio. En otras palabras, es convexa si y sólo si para todo y todo , la función es convexa. Esta propiedad es muy útil porque permite verificar si una función es convexa mediante su restricción a una línea que pasa por su dominio, es decir, si 69 4.1 Introducción a la optimización convexa es convexa. En los problemas de optimización convexa se trabaja frecuentemente con la función de valor extendido en la que se define el valor de la función como ∞ fuera del espacio de 4.1.3.1.1 Condición de primer orden Si existe el gradiente en todos los puntos del dominio de , entonces decimos que es convexa si y sólo si su dominio es un conjunto convexo, y se cumple lo siguiente La función afín es la aproximación de Taylor de primer orden de en torno a . Si , entonces para todo , por lo que es un mínimo global de la función . 4.1.3.1.2 Condición de segundo orden Si existe el hessiano en todos los puntos del dominio de , entonces es convexa si y sólo si el hessiano es semidefinido positivo en todos los puntos del dominio, esto es 4.1.3.1.3 Condición del epígrafo El grafo de una función se define como un subconjunto de El epígrafo de una función se define también como un subconjunto de 70 Proyecto Fin de Carrera Enrique Molleja Una función es convexa si y sólo si su epígrafo es un conjunto convexo. Una función es cóncava si y sólo si su hipógrafo es un conjunto convexo. Se define el hipógrafo como 4.1.3.2 Operaciones que conservan la convexidad A continuación se describen algunas operaciones que conservan la convexidad o concavidad de las funciones. 4.1.3.2.1 Suma ponderada con pesos no negativos La suma ponderada de funciones convexas es una función convexa si los pesos son positivos o cero. Esto indica que el conjunto de funciones convexas es un cono convexo, si . También se cumple que la suma ponderada de funciones cóncavas es una función cóncava si ningún peso es negativo. Se puede extender el resultado a integrales y sumas infinitas. 4.1.3.2.2 Composición con un mapa afín Suponer la función , y . Sea la función compuesta por una función cuyo argumento es una función afín Si es una función convexa, también lo es. también es convexa; y si es cóncava, 4.1.3.2.3 Máximo y supremo puntual Sean funciones convexas, entonces la función máximo puntual , 71 4.1 Introducción a la optimización convexa donde el dominio de es la intersección de los dominios de las , es una función convexa. Esta propiedad se puede extender al supremo puntual de un conjunto infinito de funciones convexas. Si para cada como, , es convexa en , entonces la función definida es convexa en . Esta propiedad es importante, porque casi todas las funciones convexas se pueden expresar como el supremo puntual de una familia de funciones afines. Si el epígrafo es un conjunto convexo, podemos encontrar un hiperplano de soporte en cada punto , y este hiperplano será una estimación de que estará siempre por debajo, por lo que decimos que es un subestimador de esta función. 4.1.3.2.4 Composición Para que la función compuesta deben cumplir unas condiciones para las funciones Definimos como, sea cóncava o convexa, se y donde Composición escalar Cuando y valen 1, entonces y . Además si se supone que y tienen segunda derivada en sus dominios, entonces la segunda derivada de una función compuesta es Si es convexa ( ), y es convexa y creciente ( y ), entonces es convexa, porque según la expresión anterior. Con este razonamiento se llega a los siguientes resultados: 72 Proyecto Fin de Carrera Enrique Molleja es convexa si es convexa y no decreciente, y es convexa si es convexa y no creciente, y es cóncava si es cóncava y no decreciente, y es cóncava si es cóncava y no creciente, y es convexa. es cóncava. es cóncava. es convexa. Esto también es aplicable cuando y las funciones no son diferenciables, aunque en las comprobaciones de función no creciente o no decreciente hay que utilizar la función de valor extendido de . Composición vectorial Suponiendo ahora el caso más complicado en el que donde ≥ 1. Suponer que y Suponiendo nuevamente que , la regla de la cadena en este caso queda, y volviendo a hacer el razonamiento para que conclusiones: es convexa si son convexas. es convexa, es convexa si son cóncavas. es convexa, se llega a las siguientes es no decreciente en todos sus argumentos, y es no creciente en todos sus argumentos, y es cóncava si son cóncavas. es cóncava, es no decreciente en todos sus argumentos, y es cóncava si son convexas. es cóncava, es no decreciente en todos sus argumentos, y Y en este caso también es aplicable para diferenciables. 73 sin necesidad de que o sean 4.1 Introducción a la optimización convexa 4.1.3.2.5 Minimización Otra función que conserva la convexidad es la minimización con respecto a alguno de los componentes de la función original. Si es convexa en ,y es un conjunto convexo no vacío, entonces la función definida a continuación es convexa 4.1.3.2.6 Perspectiva de una función Si , la perspectiva de es la función definida como El dominio son los vectores tales que está en el dominio de , siendo . Esta operación mantiene la convexidad de . Si es convexa, también; y si es cóncava, es cóncava. 4.2 Aplicaciones En este apartado se describen las herramientas utilizadas en el proyecto y que son aplicaciones de la técnica de optimización convexa explicada anteriormente. Concretamente, en este proyecto se utilizan la clasificación lineal y la regularización. 4.2.1 Clasificación En problemas de reconocimiento de patrones y clasificación se tienen dos conjuntos de puntos en , y , y se desea encontrar una función que sea positiva en el primer conjunto y negativa en el segundo, es decir, Si estas desigualdades se cumplen, se dice entonces que dos conjuntos de puntos. 74 separa o clasifica los Proyecto Fin de Carrera Enrique Molleja 4.2.1.1 Discriminación lineal En la discriminación lineal, se busca una función afín clasifique los puntos, esto es que En términos geométricos, se busca un hiperplano que separe los dos conjuntos de puntos. Puesto que las desigualdades estrictas anteriores son homogéneas en y en , son realizables si y sólo si el conjunto de desigualdades lineales no estrictas es realizable. En la ilustración 8 se muestra un ejemplo de clasificación simple de dos conjuntos de puntos. Aunque en este caso existe una clasificación perfecta de los dos conjuntos utilizados, no siempre será así, pudiendo existir puntos de uno u otro conjunto en el lado opuesto del plano. 75 4.2 Aplicaciones Ilustración 8: Clasificación lineal de puntos 4.2.1.2 Discriminación no lineal Aunque no se ha utilizado en el proyecto, se explica brevemente para poder comparar con el método de clasificación lineal descrito anteriormente. Cuando se desea clasificar conjuntos se puede buscar también una función no lineal , a partir de un subespacio de funciones, que sea positiva en un conjunto y negativa en el otro Si se demuestra que es lineal en los parámetros que la definen, estas desigualdades pueden ser resueltas del mismo modo que en la discriminación lineal. A continuación se describen algunos casos interesantes. 76 Proyecto Fin de Carrera Enrique Molleja 4.2.1.2.1 Discriminación cuadrática Sea una función cuadrática: deben satisfacer las desigualdades . Los parámetros las cuales son un conjunto de desigualdades lineales estrictas en las variables . Al igual que en la discriminación lineal, es homogénea en de modo que se puede encontrar una solución a las desigualdades lineales estrictas resolviendo el problema de factibilidad no estricto (nonstrict feasibility problem), La superficie que separa los conjuntos superficie cuadrática, y las dos regiones de clasificación es una están definidas por desigualdades cuadráticas. Resolver el problema de discriminación cuadrática, es lo mismo que determinar si los dos conjuntos pueden ser separados por una superficie cuadrática. Se pueden imponer restricciones a la superficie de separación. para definir condiciones a la forma de 4.2.1.2.2 Discriminación polinómica Sea un conjunto de polinomios en con grado menor o igual a : 77 4.2 Aplicaciones Se puede determinar si dos conjuntos y , pueden separarse o no mediante un polinomio resolviendo un conjunto de desigualdades lineales en las variables . En sentido geométrico, se busca si dos conjuntos pueden separarse mediante una superficie algebraica (definida por un polinomio de grado menor o igual a ). 4.2.1.3 Algoritmos A continuación se presenta el método descrito en [A.5] para determinar de forma numérica la solución óptima al problema de la clasificación lineal de dos conjuntos de puntos y en . Se parte de la definición del problema de optimización convexo sin restricciones donde , es una función convexa. Se quiere obtener de forma eficiente la solución óptima que minimice la función objetivo. Por eficiente se entiende que el tiempo de cálculo computacional para obtener la solución dependa polinómicamente del número de variables de optimización (dimensión del vector ) En lo que sigue se asume que es una función estrictamente convexa y doblemente diferenciable. Esto es equivalente a decir que el hessiano de , evaluado en cualquier punto , tiene autovalores positivos (esto es, es definido positivo) Mediante la estrategia denominada Método de Newton, para mejorar una solución candidata (no óptima), se pretende obtener tal que satisfaga Utilizando esta estrategia de forma reiterada, y partiendo de un punto arbitrario , se obtiene una secuencia de puntos , tales que , para todo . Dada la solución candidata consiste en obtener un desarrollo en Taylor en torno a tal que aproxime 78 , la idea Proyecto Fin de Carrera Dado que la matriz Enrique Molleja se asume definida positiva para todo punto infiere que es una función cuadrática y convexa con respecto a convexidad de permite afirmar que el mínimo con respecto a alcanza en , donde anula la derivada respecto a . Esto es, , se . La se Aunque el anterior razonamiento es suficiente para garantizar que es óptimo, se muestra en lo que sigue sin recurrir al concepto de convexidad que efectivamente para todo . La anterior desigualdad es válida para todo para . Esto nos lleva a , por lo que lo es en particular Dado que es una aproximación de segundo orden de torno a , se infiere que en La anterior aproximación es válida tan sólo si es lo suficientemente pequeño. Bien pudiera pasar que el valor del funcional de fuera mayor en que en . Con vistas a solventar este problema, se toma como incremento respecto en vez de . La constante se obtiene de forma que 79 4.2 Aplicaciones sea estrictamente menor que . Existen distintas formas de obtener un valor adecuado para . La primera de ellas es obtener el valor de que minimiza . Dada la convexidad de , la función es convexa respecto del parámetro , con lo que la obtención del valor óptimo de no entraña mayor dificultad. En todo caso, en el contexto de algoritmos de punto interior, es común obtener utilizando la técnica denominada Backtracking. Dicha técnica se basa en la siguiente constatación. Para valores suficientemente pequeños de , la siguiente aproximación (de primer orden) es válida: Dado que afirmar que para es una cantidad estrictamente negativa, se puede , existe una vecindad tal que En dicha vecindad, se obtiene un decremento de la función mayor o igual a una fracción de lo que predice la aproximación de primer orden. La técnica de Backtracking consiste simplemente en elegir como , donde y es el menor entero mayor o igual a cero que satisface: El algoritmo que proporciona una secuencia de vectores al óptimo de la función es el siguiente: 1. Elegir el punto inicial . 2. Calcular . 80 que convergen Proyecto Fin de Carrera Enrique Molleja 3. Calcular la solución 4. Elíjase , al sistema de ecuaciones . Hágase . 5. Mientras , hacer 6. 7. Si entonces ir a (1). Si no, terminar. Este algoritmo obtiene una secuencia decreciente de valores de mejora predicha por el algoritmo en cada paso es una fracción de . Dado que la , el criterio para dar por terminada la optimización es que dicha cantidad sea en módulo lo suficientemente pequeña. Por ejemplo, se puede tomar igual a 10-6. En cuanto a los valores para y , una elección razonable es = 0.5 y = 0.5. Lo visto hasta ahora tiene como aplicación la clasificación lineal que se describe a continuación. El problema de clasificación, dados dos conjuntos y en , consiste en la obtención de un plano de la forma tal que para todo y para todo . En muchas ocasiones no existe dicho plano, es decir, es imposible obtener un plano de la forma que separe ambos conjuntos. Una forma de sortear este problema consiste en obtener tal que se minimice el siguiente funcional: donde , para todo . Con vistas a aplicar el algoritmo propuesto a la minimización del anterior funcional se requiere la obtención de las expresiones analíticas que proporcionan la derivada respecto y el hessiano: 81 4.2 Aplicaciones 4.2.2 Aproximación regularizada En la aproximación regularizada, el objetivo es encontrar un vector que sea pequeño y que además haga que el valor residual de sea también pequeño. Esto puede describirse como un problema de optimización convexa con dos objetivos, y : con respecto a . La primera norma, que mide el tamaño del residuo, pertenece a . Por otro lado, la segunda norma se utiliza para medir el tamaño de y está en el espacio . El equilibrio entre ambos objetivos puede encontrarse mediante diversos métodos y además puede obtenerse la curva que relaciona y para ver cómo debe variarse uno de los objetivos y conseguir que el otro sea pequeño. 82 Proyecto Fin de Carrera Enrique Molleja La regularización es entonces un método utilizado para resolver este tipo de problemas en los que se desea optimizar dos objetivos. Una forma de regularización es la de minimizar la suma ponderada de los objetivos: donde y son parámetros del problema, que con su variación hacen cambiar el equilibrio entre los objetivos. Valores usuales para son 1 y 2. Como se vio anteriormente, la regularización es una técnica que se puede aplicar, por ejemplo, en el contexto de los mínimos cuadrados. De este modo pueden añadirse términos adicionales a la función objetivo que penalizan aquellos valores de que son demasiado grandes. En el caso más sencillo, se añaden los cuadrados de la variable a la función de coste donde es un parámetro elegido para un problema concreto y que permite mantener un equilibrio entre minimizar la función no se haga demasiado grande. y conseguir que Con este método se resuelve el problema de la aproximación regularizada con dos objetivos haciendo que y sean pequeños, pero añadiendo un término extra que penaliza la norma de . 4.2.2.1 Regularización de problemas inversos La regularización se utiliza en muchos contextos, pero dentro de las múltiples aplicaciones que pueden encontrarse es la resolución de sistemas de ecuaciones lineales la que se utilizará en este proyecto. Cuando se tiene una matriz cuadrada , y el objetivo es resolver el sistema de ecuaciones lineales , puede utilizarse la regularización para encontrar una solución óptima en aquellos casos en los que la matriz no está correctamente condicionada, o incluso es una matriz singular. La regularización proporciona un equilibrio entre resolver las ecuaciones y mantener a un valor razonable. Una forma de regularización muy común en el contexto de problemas mal 83 4.2 Aplicaciones condicionados es la de Tikhonov25, que está basada en minimizar la suma ponderada de las normas al cuadrado, lo que da lugar a un problema de optimización convexa cuadrático: La regularización de Tikhonov tiene como solución analítica Puesto que para cualquier , la solución de Tikhonov no requiere la asunción de una dimensión para la matriz . 4.3 Clasificación de los datos Con los datos correctamente almacenados y con las funciones de acceso a los mismos bien definidas ahora es posible describir otra parte fundamental del proyecto, la clasificación de la información. Como se explicó en el apartado 4.2.1, la clasificación consiste en obtener un plano en el espacio n-dimensional que sea capaz de separar dos conjuntos de puntos. El objetivo que se persigue al utilizar esta técnica no es predecir el valor exacto de un índice sino predecir la dirección de cambio (si el índice se moverá hacia arriba o hacia abajo). 4.3.1 Vectores de características Se han utilizado datos diarios del mercado (Apertura, Máximo, Mínimo, Cierre, Volumen y Cierre ajustado) entre los años 2001 y 2012. Este intervalo temporal se corresponde con el primer día en el que existen datos disponibles para todas las columnas citadas y el día más reciente antes de la finalización de los experimentos llevados a cabo en el proyecto. Aunque en el Capítulo 5 se verá en detalle cómo se utiliza la información histórica, como primera aproximación podría decirse que cada día d del conjunto de datos utilizados ha sido descrito por un vector de características v(d) y un conjunto S o B. Dicho vector pertenece al conjunto S si al día siguiente el índice sube, y al conjunto B en caso contrario. Los vectores de características definen diferentes escenarios, de tal manera que 25 Ver A. N. Tikhonov & V. Y. Arsenin, "Solutions of ill-Posed Problems", Wiley, 1977. 84 Proyecto Fin de Carrera Enrique Molleja en cada uno de ellos se utiliza un conjunto distinto de regresores o parámetros. Por lo tanto, el análisis de cada vector arrojará resultados también diferentes. Los vectores de características v(d) han sido llamados de distinta manera en función de la cantidad de información que contienen: simple, doble, mediano y grande. A continuación se describen las características para cada escenario: • Simple: se considera que este vector viene definido por los parámetros de valor de cierre del día d-1 y el valor de apertura del día d para un determinado índice o empresa. vs(d) = [apertura(d), cierre(d-1)] • Doble: en este escenario el vector viene definido por dos componentes, el valor de cierre del día d-1 y el valor de cierre del día d-2. Por lo tanto, se tiene en cuenta la variación en el valor de cierre entre dos días consecutivos para un determinado índice o empresa. vd(d) = [cierre(d-1), cierre(d-2)] • Mediano: se utilizan datos históricos de un índice de hasta nueve días de antigüedad. Los valores utilizados en este vector son los datos de apertura, cierre y volumen, así como sus medias y variaciones respecto al pasado. Por ejemplo, para definir el valor medio de cierre entre el día d-1 y el día d-5, se escribe lo siguiente: media(cierre(d-5:d-1)), donde se utiliza la notación de MATLAB para definir rangos y que consiste en poner el operador ':'. Para definir las variaciones de un valor se utiliza la expresión general: (valor final – valor inicial) / (valor inicial). Los regresores utilizados forman el vector siguiente: vm(d) = [apertura(d-1), (apertura(d-1)-apertura(d-2))/apertura(d-2), (apertura(d-1)-apertura(d-3))/apertura(d-3), (apertura(d-1)-apertura(d-6))/apertura(d-6), cierre(d-1), 85 4.3 Clasificación de los datos cierre(d-2), cierre(d-3), (cierre(d-1)-cierre(d-2))/cierre(d-2), media(cierre(d-5:d-1)), media(cierre(d-7:d-1)), media(cierre(d-9:d-1)), media(volumen(d-5:d-1))] • Grande: en este escenario el vector de características está formado por los mismos parámetros que el anterior, pero añadiendo más información histórica. Se considera ahora que los datos utilizados abarcan hasta 30 días de antigüedad. vg(d) = vm(d) + media(cierre(d-15:d-1)), media(cierre(d-30:d-1)), media(volumen(d-15:d-1))] Conocidos los vectores de características, se debe elegir un criterio para determinar si la bolsa sube o baja y poder así asignar el vector a un conjunto u otro. Suponiendo que para determinar la variación del valor de cierre se utiliza un intervalo de un día, la pauta a seguir para separar los vectores es la siguiente: • Si: cierre(d) >= cierre(d-1) El índice sube o permanece igual, asignar a S • Si: cierre(d) < cierre(d-1) El índice baja, asignar a B 4.3.2 Algoritmo clasificador Una vez conocidos los regresores que definen cada escenario, así como el criterio utilizado para separar en dos conjuntos la información contenida en los vectores v(d) del espacio n-dimensional, debe obtenerse un plano mediante el cual los conjuntos puedan ser clasificados o separados. Esta clasificación consiste en obtener el hiperplano que permitirá a los experimentos y simulaciones realizar las predicciones. El algoritmo clasificador visto en el apartado 4.2.1.3 servirá de base para 86 Proyecto Fin de Carrera Enrique Molleja implementar en MATLAB dos funciones que se encargan de minimizar el funcional y generar los coeficientes del plano que separa los conjuntos. Las funciones son las que se detallan a continuación y vienen desarrolladas en el Anexo C: • • JgH_Clasificador, obtiene el valor de la función objetivo J así como su derivada (g) y hessiano (H). ◦ Entrada: (coeficientes del plano, conjunto de subida S, conjunto de bajada B) El vector que almacena los coeficientes del plano se ha llamado theta. ◦ Salida: (J, g, H) Clasificador, se encarga de minimizar la función objetivo generada con la función anterior. Esta tarea la realiza hasta que se obtiene un error menor al especificado como parámetro en el algoritmo. En cada iteración cambia el valor de los coeficientes del plano clasificador, cambiando por lo tanto el valor de la variable theta. ◦ Entrada: (conjunto de subida, conjunto de bajada) ◦ Salida: (coeficientes del plano) El clasificador devuelve la variable theta una vez minimizada la función objetivo. Estas funciones obtienen una secuencia decreciente de valores de hasta conseguir que se minimice el problema, momento en el que se da por terminada la optimización. En las ilustraciones 9 y 10 puede verse el proceso de minimización del funcional , así como la evolución de las componentes del vector que define el plano para un conjunto de vectores de características de ejemplo (Mediano y Grande). En las gráficas superiores puede verse cómo las componentes del vector que define al plano tienden a estabilizarse, mientras que en las gráficas inferiores se observa cómo se reduce el valor de a medida que se realizan más iteraciones en la función de clasificación. Otro ejemplo puede verse en la ilustración 11, donde se representa el resultado obtenido al clasificar un conjunto de puntos procedentes de datos históricos utilizando el vector de características denominado Doble v d(d) y el criterio de separación visto anteriormente. Se ha utilizado únicamente este vector para representar el plano puesto que es el único cuya dimensión del espacio vectorial permite su representación en una gráfica. Además, en este caso se ha representado de manera diferente la evolución de las componentes del vector que define el plano. Como vd(d) es de dimensión 2, se han considerado las componentes de theta como las coordenadas de un punto de manera que puede verse cómo se estabiliza el valor. 87 4.3 Clasificación de los datos Componente de theta Iteración Ilustración 9: Minimización de J(x) y obtención de theta para el vector vm(d). En la gráfica superior se observa cómo cada una de las doce componentes del vector theta converge hacia un valor mas preciso. Cada línea de color representa una iteración, de manera que los picos y valles de la línea mas exterior representan el valor final de las componentes del vector theta. En la gráfica inferior puede verse cómo se reduce el valor de J en cada una de las seis iteraciones que ha necesitado el clasificador para minimizar J. 88 Proyecto Fin de Carrera Enrique Molleja Componente de theta Iteración Ilustración 10: Minimización de J(x) y obtención de theta para el vector vg(d). Ahora, en la gráfica superior, se observa la evolución de cada una de las quince componentes del vector theta. Los picos y valles de la línea mas exterior representan el valor final de las componentes de dicho vector. En la gráfica inferior puede verse cómo se reduce el valor de J en cada una de las doce iteraciones que ha necesitado el clasificador para minimizar J. 89 4.3 Clasificación de los datos Iteración Ilustración 11: Minimización de J(x) y obtención de theta para el vector vd(d). Puesto que el vector vd(d) solamente tiene dos componentes, se ha representado en la primera gráfica la evolución de los elementos del vector theta como puntos en el plano, de modo que se observa cómo en cada iteración el punto converge hacia un valor final. En la segunda gráfica se representa la minimización de J en 30 iteraciones. Y en la última gráfica puede verse el plano clasificador obtenido tras la ejecución de la función de clasificación y cómo separa los dos conjuntos (S y B) de puntos. 90 Proyecto Fin de Carrera Enrique Molleja 4.3.3 Precisión de los cálculos. Matrices singulares Durante la clasificación de los puntos puede ocurrir que MATLAB muestre una advertencia que indica que una matriz está cerca de ser singular o mal condicionada. Esta advertencia aparece porque al intentar resolver el sistema dado por Delta=-H\g en la función Clasificador, se detecta que el número de condición de la matriz hessiana H ( ) es muy grande, lo que ocurre cuando la matriz tiene filas casi linealmente dependientes haciendo que su determinante tome valores muy pequeños y su inversa tenga valores muy grandes. Cuando ocurre esto un error mínimo en los datos hace que pueda existir un error relativamente grande en el resultado del sistema. En nuestro caso esos errores en los datos pueden venir dados por falta de precisión manejando los cálculos, ya que estos están siempre sujetos a problemas de redondeo debidos a que la precisión de las máquinas es finita, por ejemplo la precisión en coma flotante de MATLAB es ~10-16 (eps=2-52). El error de redondeo puede ser magnificado por sistemas lineales mal condicionados. Conocido este problema en la resolución de sistemas lineales, se han tomado las siguientes medidas para reducir los efectos de la propagación del error: 1. Por un lado se ha observado que normalizar los datos históricos utilizados para generar los vectores de características, y que después se utilizarán en el algoritmo de clasificación, reduce considerablemente el número de condición. En la mayoría de los casos se reduce en torno al orden de 109, obteniéndose valores del orden de 104. La normalización se realiza antes de formar los conjuntos S y B. Se divide cada dato utilizado para formar el vector v(d) por el máximo de manera que la información queda definida entre 0 y 1. 2. Por otra parte puede ocurrir que en algunos sistemas de ecuaciones el número de condicionamiento sea excesivo y haya que recurrir a un método alternativo para limitar el error. Asumiendo una precisión para MATLAB del orden de 10-16, el error relativo cometido en la solución del sistema viene dado por: , es decir, que si es 16 del orden de 10 el error cometido podría ser del orden de 1. Cuando ocurre esta situación se ha optado por llevar a cabo una regularización de la matriz H implicada en el sistema a resolver. 4.3.3.1 Regularización de matrices singulares En el apartado 4.2.2 se vio una de las múltiples técnicas de regularización existentes, el método de regularización de Tikhonov. En esta sección se presenta el algoritmo para MATLAB que implementa dicho método, y que será utilizado para resolver sistemas de ecuaciones en los que la matriz no está bien condicionada. 91 4.3 Clasificación de los datos El algoritmo utilizado26 calcula la solución regularizada de Tikhonov de un sistema . Para ello se hace uso de la descomposición en valores singulares (SVD) de la matriz que se desea regularizar ya que, según el autor del algoritmo, “esa aproximación se adapta mejor a la granularidad gruesa de MATLAB”27, que en el contexto de almacenamiento de datos, se refiere al nivel de detalle en una tabla o al tamaño en el que están divididos los campos. La descomposición en valores singulares de una matriz obtener una factorización de la misma de tal manera que, , consiste en donde y son matrices ortogonales cuyas columnas son los vectores singulares izquierdos y derechos de respectivamente, y es una matriz formada por los valores singulares de en su diagonal principal ordenados de mayor a menor, y cuyos elementos fuera de la diagonal son nulos. Los vectores singulares izquierdos son los autovectores de la matriz , mientras que los vectores singulares derechos son los autovectores de la matriz . Por otra parte, el cálculo de los valores singulares de consiste en obtener la raíz cuadrada de los autovalores no nulos de ambas matrices y . También existe la descomposición en valores singulares compacta de una matriz (CSVD). En este caso, la descomposición resulta de elegir solamente los autovectores asociados a los valores singulares no nulos, quedando las matrices de la siguiente manera: 26 Ver Christian Hansen, www.mathworks.com/matlabcentral/fileexchange/52 27 Ver Christian Hansen 2008, Regularization Tools: A Matlab Package for Analysis and Solution of Discrete Ill-Posed Problems, Version 4.1 Informatics and Mathematical Modelling, Technical University of Denmark 92 Proyecto Fin de Carrera Enrique Molleja Una vez introducido el concepto de descomposición en matrices singulares, se presentan las funciones que serán utilizadas en el proceso de regularización y que el autor proporciona dentro de un paquete junto con otras funciones auxiliares relacionadas con la regularización: • csvd. Permite obtener la descomposición en valores singulares compacta o reducida de una matriz pasada como argumento. ◦ Entrada: (A) Matriz que se desea descomponer, si se agrega un segundo parámetro (sin importar tipo o tamaño) se calcula la descomposición completa. ◦ Salida: (U, s, V) Matrices resultantes de la descomposición. • tikhonov. Obtiene la solución regularizada del sistema dado por las matrices singulares y el vector de términos independientes. Al recibir como parámetro la descomposición SVD, entonces se aplica la forma estándar de regularización siguiente: donde Si ◦ si no se especifica lo contrario. es un vector, . entonces es una matriz tal que Entrada: (U, s, V, b, lambda) Matrices singulares (U, s, V) y vector de términos independientes (b). El parámetro del problema (lambda) hace cambiar el equilibrio entre los objetivos. ◦ Salida: (x_lambda) Solución del sistema de ecuaciones. 93 4.4 Conclusiones 4.4 Conclusiones Dentro de lo analizado en este capítulo, se ha visto que la optimización convexa consiste, básicamente, en la selección del mejor elemento (con respecto a algún criterio) dentro un conjunto de elementos disponibles. De forma general, con la optimización se intentan descubrir los "mejores valores" de alguna función objetivo dado un dominio definido, incluyendo una variedad de diferentes tipos de funciones objetivo y diferentes tipos de dominios. La optimización convexa es ampliamente utilizada en diversos aspectos, pero dentro del ámbito de este proyecto se utilizarán únicamente algunos aspectos relacionados con la clasificación y la aproximación regularizada. Con la clasificación se pretende identificar, en nuestro caso, a qué conjunto pertenece una nueva observación de datos históricos bursátiles, concretamente, si un nuevo punto definido con datos históricos pertenece al conjunto de datos que definen tendencias al alza o si, por el contrario, pertenece al que define tendencias a la baja. Finalmente, con la regularización se ha dado solución a un problema derivado del uso de ordenadores para el procesamiento de los datos, ya que en ellos la precisión de los cálculos no es perfecta, y por lo tanto se generaban problemas durante la resolución de sistemas de ecuaciones debido a que aparecían matrices mal condicionadas que podían afectar a los resultados obtenidos. 94