• No se han encontrado resultados

Desarrollo de un predictor de series de tiempo mediante el uso de support vector machines, aplicación a series financieras

N/A
N/A
Protected

Academic year: 2020

Share "Desarrollo de un predictor de series de tiempo mediante el uso de support vector machines, aplicación a series financieras"

Copied!
41
0
0

Texto completo

(1)DESARROLLO DE UN PREDICTOR DE SERIES DE TIEMPO MEDIANTE EL USO DE SUPPORT VECTOR MACHINES, APLIC ACIÓN A SERIES FINANCIER AS. Javier Eduardo Ortiz Camacho. UNIVERSIDAD DE LOS ANDES DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Bogota, Colombia Diciembre 15 del 2006.

(2) DESARROLLO DE UN PREDICTOR DE SERIES DE TIEMPO MEDIANTE EL USO DE SUPPORT VECTOR MACHINES, APLIC ACIÓN A SERIES FINANCIER AS. Javier Eduardo Ortiz Camacho TESIS DE GR ADO. ASESOR: Fernando Lozano Martínez INGENIERO ELECTRÓNICO. UNIVERSIDAD DE LOS ANDES DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Bogota, Colombia Diciembre 15 del 2006.

(3) PROYECTO O TESIS DE GRADO PARA OPTAR EL TÍTULO DE: Ingeniero Electrónico ESTUDIANTE: Ja vier Eduardo Ortiz Camacho. CÓDIGO: 200123452. TÍTULO DE LA TESIS O PROYECTO: DESARROLLO DE UN PREDICTOR DE SERIES DE TIEMPO MEDIANTE EL USO DE SUPPORT VECTOR MACHINES, APLICACIÓN A SERIES FINANCIER AS ASESOR: Fernando Lozano Martínez. ___________________________________ FERNANDO LOZANO MARTÍNEZ. APROBADO POR: _____________________________. Firma: ___________________________________. Fecha de aprobación: __________________________. Jurados Asignados: JURADO 1 : Elkin García JURADO 2 : Pedro Rangel.

(4) UNIVERSIDAD DE LOS ANDES DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA. PRESENTACIÓN DE PROPUESTA DE PROYECTO O TESIS DE GRADO SEMESTRE: 20061 FECHA: Mayo 19 de 2006 PROYECTO O TESIS DE GRADO PARA OPTAR EL TÍTULO DE: Ingeniero Electrónico ESTUDIANTE: Javier Eduardo Ortiz Camacho. CÓDIGO: 200123452. TÍTULO DE LA TESIS: DESARROLLO DE UN PREDICTOR DE SERIES DE TIEMPO MEDIANTE EL USO DE SUPPORT VECTOR MACHINES, APLICACIÓN A SERIES FINANCIER AS DECLARACIÓN: 1 - Soy consciente que cualquier tipo de fraude en esta Tesis es considerado como una falta grave en la Universidad. Al firmar, entregar y presentar esta propuesta de Tesis o Proyecto de Grado, doy expreso testimonio de que esta propuesta fue desarrollada de acuerdo con las normas establecidas por la Universidad. Del mismo modo, aseguro que no participé en ningún tipo de fraude y que en el trabajo se expresan debidamente los conceptos o ideas que son tomadas de otras fuentes. 2- Soy consciente de que el trabajo que realizaré incluirá ideas y conceptos del autor y el Asesor y podrá incluir material de cursos o trabajos anteriores realizados en la Universidad y por lo tanto, daré el crédito correspondiente y utilizaré este material de acuerdo con las normas de derechos de autor. Así mismo, no haré publicaciones, informes, artículos o presentaciones en congresos, seminarios o conferencias sin la revisión o autorización expresa del Asesor, quien representará en este caso a la Universidad.. ___________________________________ JAVIER EDUARDO ORTIZ CAMACHO Código: 200123452 CC: 80775137 de Bogota.

(5) A mi familia, a mi novia y a mis amigos, Gracias a ustedes estoy donde estoy..

(6) AGR ADECIMIENTOS. El autor desea expresar sus más sinceros agradecimientos a: Esmeralda Camacho, sin la cual el esfuerzo de tantos años no habría sido posible. Fernando Lozano, por su dedicación y profesionalismo al servicio de la educación, Carolina Pérez por aportar el sentimiento y la inspiración, y a Andrés Ávila y Gustavo Ahumada por su apoyo incondicional..

(7) CONTENIDO PÁG. Introducción 1. Algoritmo de Support Vector Regression.. 11. 2. Aplicación Euro-Dólar.. 17. 3. Criterios de selección de implementaciones.. 19. 4. Criterios de error.. 23. 5. Procedimiento.. 24. 5.1. Escalar.. 5.2. Ventanas de datos.. 5.3. Selección de parámetros a variar. 6. SVM KM.. 27. 7. SVM Toolbox.. 32. 8. LS SVM.. 34. 9. Resultados, Conclusiones y Futuras investigaciones.. 38.

(8) RESUMEN. En el estudio acá desarrollado, se muestran tres predictores para la serie de tiempo que describe la tasa cambiaria del euro con el dólar. Se escogieron tres implementaciones distintas del algoritmo de support vector regression, se definió un parámetro común de error aplicable a la práctica de esta predicción y se buscaron los parámetros ideales en cada caso para buscar la metodología más recomendable para este tipo de predictores..

(9) INTRODUCCIÓN La predicción de series de tiempo toma un interés particular en el área de las finanzas, ya que este proceso aplicado a instrumentos financieros se traduce en ganancias económicas. Para hacer dicha predicción se hace uso del algoritmo de machine learning conocido como support vector machines, específicamente support vector regression. En este, se resuelve un problema de programación cuadrática para identificar los puntos, a partir de los datos de entrenamiento, que generan un hiperplano separador, que clasifica los puntos.. Inicialmente veremos algunas generalidades del algoritmo de support vector regression para así definir claramente lo que pretende este estudio. Entre los parámetros a definir se encuentra un criterio de error aplicable en la práctica de predicciones financieras, unos requerimientos mínimos para las aplicaciones a usar y el tipo de resultados que se esperan. Después de esto se mostraran los resultados obtenidos para cada tipo de predictor y se concluirá con una metodología aplicable a la predicción de series financieras.. Todos los predictores serán realizados hallando una función de los datos anteriores con el dato futuro, lo que implica que se asume que dicha función existe. Trabajos más profundos tendrían en cuenta también series de tiempo como las de salida de datos económicos de los países involucrados, o indicadores económicos como la inflación y el crecimiento. Estos no fueron tenidos en cuenta.

(10) ya que la finalidad es buscar metodologías y herramientas apropiadas y no desarrollar predictores sofisticados.. Se escogió el uso de support vector machines, debido a que en la actualidad todas las predicciones que se usan manejan ya solo modelos lineales que aunque funcionan pierden generalidad rápidamente debido a la variabilidad en el tiempo de la serie. La teoría ha demostrado que esta herramienta de clasificación y predicción es superior a muchas otras en términos de generalidad ya que rara vez se sobre ajusta a los datos de entrenamiento, por esto, sin sacrificar resultados o capacidad de predicción se generan herramientas mucho mas duraderas..

(11) 1. SUPPORT VECTOR REGRESIÓN. En general, el algoritmo de regresión lo que pretende es encontrar la función mas lana posible a partir de los datos de entrenamiento con una desviación de no mas de ε.. {( X 1 , Y1 ), K, ( X n ,Yn )} ⇒ Y = F ( X ) Empezando por el caso lineal, la función que se desea obtener es la siguiente: F ( x ) =< w, x > + b Donde X pertenece al espacio de los parámetros de entrada, w y b son los parámetros a encontrar y <•,•> es un producto punto o producto interno. Para asegurar que la función sea lo más plana posible, se busca hacer w lo más pequeño posible, lo que implica el siguiente problema de optimización convexa:. Minimizar. Sujeto A Dado que no necesariamente existe una función F(x) que aproxime todos datos con una precisión de ε, es necesario permitir la aparición de errores. La tolerancia a las desviaciones superiores a. ε se logra usando variables de holgura. penalizadas por una función de costo. La C entonces es el balance entre lo plano - 11 -.

(12) de la función y la tolerancia a las desviaciones superiores a ε. El problema de optimización queda de la siguiente manera:. Minimizar. Sujeto A. Figura 1. Función de costo ε-insesitiva. Ya que en la mayoría de los casos, el problema es mas fácil de solucionar en su versión dual (sobretodo en la generalización a casos no lineales), el problema dual para el caso lineal es el siguiente:. El parámetro b , se encuentra haciendo uso de las condiciones de Karush-KuhnTucker (KKT), estas establecen que el producto entre las variables duales (multiplicadores de lagrange insertados para obtener el problema dual), y las restricciones se debe anular. Además de ayudar a encontrar b, las condiciones KKT, demuestran que no para todos los datos de entrenamiento, las variables duales son 0, aquellos para los cuales estos coeficientes no desaparecen se conocen como vectores e soporte. - 12 -.

(13) Figura2. Condiciones de Karush-Kuhn-Tucker. Para generalizar este problema a casos no lineales, los datos son mapeados desde el espacio característico, de dimensión superior, mediante una función especial1, y procesados por una función conocida como Kernel. El kernel, es una función que cumple con todos los principios de un producto punto (o producto interno, vease [2]) y e vita tener que conocer la función de mapeo, ya que el algoritmo se desarrolla en torno a los productos punto. En cuanto a los tipos de kernel que se pueden usar, la clave es que esta función cumpla con los criterios y teoremas del producto punto, este conjunto de condiciones se conocen como las condiciones de Mercer. A continuación se enuncian dichos teoremas:. Si. entonces el kernel. se puede usar como un producto punto en algún espacio característico. Si dos Kernel K1, K2, son admisibles, entonces una combinación lineal de ellos de la forma. 1. también lo es.. Para aplicaciones de reconocimiento optico de caracteres, se ha encontrado que este espacio tiene una dimension ideal de 3.7 X 10 16 ver Schðlkopf, Burges y Vapnik, 1995.. - 13 -.

(14) Sea S una función en c x c tal que. entonces K. es un kernel admisible. Si K1 y K 2 son kernels admisibles, entonces. es un. kernel admisible. La traslación invariante de un kernel de la forma admisible como kernel si y solo si la transformada de fourier es no negativa. Todo Kernel del tipo producto punto debe cumplir con:. Para cualquier x>=0, para ser un Kernel admisible. Todo kernel del tipo producto punto definido en un espacio de Hilbert, con expansion en series de potencia:. Es admisible si y solo si. .. Algunos Kernel admisibles son: Kernel polinomial Homogéneo. Kernel polinomial Inhomogeneo.. −( u − v) 2. K (u , v ) = e. 2p2. Kernel Gausiano. - 14 -. es.

(15) Kernel tangente hiperbólica, este aunque no cumple con las condiciones ha sido usado con éxito en la practica. También es conocido como kernel sigmoideo y proviene de las redes neuronales. Finalmente el problema generalizado queda de la siguiente forma:. En cuanto a las funciones de costo usadas, la más común es la conocida como εinsensitiva, dada la generalidad de sus resultados. Sin embargo existen otras funciones que alteran el problema de optimización pero generan resultados similares. Entre estas funciones esta la función de costo cuadrática que evita la necesidad de un problema de optimización ya que el problema se puede resolver de forma analítica mediante un proceso de inversión de matrices. Las funciones de costo mas utilizadas se pueden observar en la figura XX.. Figura 3. Funciones de costo para support vector regression.. - 15 -.

(16) Cabe resaltar que aunque el procedimiento se origina desde dos conceptos distintos para clasificación y para regresión, el problema de optimización es el mismo. La diferencia esta en que para clasificación los vectores de soporte son aquellos que generan el hiperplano separador, mientras que en predicción son aquellos que quedan por fuera del tubo ε.. La arquitectura general de un predictor de series de tiempo usando support vector machines se puede observar en la figura 3.. Figura 4. Arquitectura de un predictor SVM. La razón de la generalidad de esta herramienta, es debido a la proveniencia de un problema de optimización convexo. Todo problema convexo restringido tiene un único mínimo, por lo tanto la maquina entrenada asegura el mínimo absoluto de la norma de los pesos, es decir es la mas plana posible y la que mas información extrajo de los vectores de soporte. Esto no sucede en las redes neuronales, por ejemplo, a que al entrenarlas se minimiza el error, pero es posible que se encuentre solo un mínimo local. - 16 -.

(17) 2. APLIC ACIÓN EURO DÓL AR. Las aplicaciones financieras son especialmente atractivas para el estudio de las predicciones ya que el correcto funcionamiento de estas herramientas se traduce en rendimientos económicos. Después de la época en la que el oro era la principal herramienta de cambio, lo que produjo fallas en la masa monetaria de las naciones, se llego en 1944 al acuerdo de Bretton Woods, en el cual se estableció que las naciones intentarían mantener sus monedas en un margen estrecho con el dólar. En los años 70, la presión ejercida sobre el dólar empezó a causar problemas similares a los causados por el cambio con el oro, por lo tanto las naciones industrializadas decidieron liberar su política cambiaria y que el valor de su moneda fuera establecido libremente por la oferta y demanda del mercado.. Con la liberación de las monedas se dio origen al mercado financiero que mas dinero mueve hoy en día. Forex (Foreign Exchange) empezó a operar a mediados de la década de los 80 con un promedio de 70 mil millones de dólares diarios, hoy en día se calcula que las operaciones diarias superan los 1.5 mil billones de dólares al día. Dada la unión de la comunidad económica europea a partir del año 1999 dando paso a la aparición del Euro, en Forex existen tres instrumentos principales, estos son conocidas como paridades y describen la tasa cambiaria de las siguientes monedas: Euro-Dólar, Dólar-Yen y Libra-Dólar.. - 17 -.

(18) La aplicación con la que se trabajara es la serie de tiempo que describe la tasa cambiaria del euro contra el dólar, que es la paridad principal del mercado. Los datos históricos de la serie se pueden ver en la figura 5, el valor actual de la serie es de 1.3276 y tiene un mínimo histórico en 0.8252 y un máximo histórico en 1.3633. Los datos con los que se cuenta para la aplicación corresponden al valor de cierre por horas, entre el 3 de mayo de 2003 y el 25 de Julio de 2006. El conjunto de datos tiene una media de 1.2249, una desviación estándar de 0.0546, mínimo de 1.0773 y máximo de 1.3652.. FIGURA 5. Datos históricos de la tasa cambiaria del euro contra el dólar. FUENTE: Banco central Europeo.. En las series financieras, la unidad básica de medida se conoce como 1 pip y equivale a 0.0001 dólares. El movimiento promedio diario de la serie es de 150 pips y se calcula que esta cambia 18000 veces en un día, lo que la hace muy volátil y apetecida por los inversionistas. - 18 -.

(19) 3. CRITERIOS DE SELECCIÓN DE IMPLEMENTACIONES. Existen varias formas de solucionar el problema de optimización planteado por las support vector machines. La manera directa consta de usar un algoritmo de programación cuadrática para resolver el problema dual, para esto es posible usar una de las muchas implementaciones que existen bajo el algoritmo conocido como (QP). Otra opción es usar el recientemente conocido SMO (sequential minimal optimzation), en el que se itera resolviendo el problema de forma analítica para conjuntos. de dos. datos. Según la teoría, el algoritmo SMO converge. adecuadamente y es computacionalmente eficiente ya que para cada dos datos existe una solución analítica rápida.. Otro algoritmo existente, aunque con ciertos problemas de perdida de generalidad, es conocido como SVM_LIGHT, en este el conjunto de datos se divide en trozos y se optimiza el problema a trozos. Se ha demostrado que usando este procedimiento el consumo de memoria se disminuye notablemente, lo que lo hace apto para aplicaciones con excesivo uso computacional. En cuanto a la optimización del problema dual como tal, el algoritmo por excelencia se conoce como algoritmo de punto interno. La clave de un algoritmo de punto interno es que soluciona el objetivo primario y el dual al mismo tiempo fortaleciendo las condiciones KKT paso a paso hasta encontrar una solución posible.. - 19 -.

(20) Aunque el conocimiento y entendimiento de estas implementaciones es importante para el desarrollo del proyecto, el objetivo no es desarrollar implementaciones propias sino usar implementaciones existentes. Por lo tanto, se definen los siguientes criterios para las implementaciones a seleccionar:. Implementación en lenguaje de programación de Matlab. Documentación entendible que facilite el entendimiento del algoritmo usado. Parámetros variables de costo y kernel. Algoritmo de regresión implementado. Software de licencia pública (GNU).. Finalmente se escogieron 3 implementaciones que permitirán encontrar las ventajas y desventajas de usar funciones de costo cuadráticas o lineales, y distintos algoritmos de solución. El resumen de cada una de estas se detalla a continuación. El software escogido consta de un toolbox completo que permite realizar labores de clasificación y regresión. Se escogieron por cumplir los criterios arriba mencionados, y por ser los mas completos encontrados durante la etapa de investigación.. LS_SVM. Es un toolbox de support vector machines implementado usando una función de costo cuadrática en vez de una lineal. Las ventajas de usar dicha función es que el - 20 -.

(21) problema es más fácil de solucionar ya que se llega a un set de condiciones lineales, donde se procede a iterar mediante un algoritmo de gradiente conjugado, o similar. Este algoritmo es versátil y permite una programación orientada a objeto, en la que todo el trabajo va referido a un modelo que contiene los componentes básicos y las opciones de la maquina. Además de las funciones básicas de entrenamiento incluye funciones de optimización de parámetros, validación y verificación de robustez.2. SVM_KM Este es un completo conjunto de funciones que permite solucionar varios problemas mediante los métodos de Kernel. Entre sus funcionalidades avanzadas esta el uso de maquinas multiclase, redes de regularización y otras técnicas. Otra de las funcionalidades es que puede aplicar funciones de costo tanto cuadráticas como lineales, lo que nos permitirá evaluar el desempeño de distintos programas frente a parámetros similares. Junto con esta aplicación se puede descargar un conjunto de ejemplos que facilitan su utilización.3. SVM TOOLBOX Esta aplicación tiene la ventaja de ser bastante sencilla de visualizar gracias a una interfaz grafica. Maneja una función de costo lineal, y tiene los algoritmos de 2. Toolbox desarrollado por K. Pelckmans, J.A.K. Suykens, T. Van Gestel, J. De Brabanter, L. Lukas, B. Hamers, B. De Moor, J. Vandewalle, de Katholieke Universiteit Leuven. Se puede descargar libremente de: http://www.esat.kuleuven.ac.be/sista/lssvmlab/ 3. Toolbox desarrollado por S. Canu and Y. Grandvalet and V. Guigue and A. Rakotomamonjy, INSA DE ROUEN, y se descarga de forma gratuita de la pagina http://asi.insarouen.fr/~arakotom/toolbox/index.html. - 21 -.

(22) optimización de parámetros incluidos. Otra ventaja de esta aplicación es que tiene un completo tutorial, en el que se detalla la implementación, la teoría y se dan los ejemplos pertinentes.4. Se decidió usar implementaciones ya realizadas, debido a la posibilidad de obtener resultados con un componente didáctico mas elevado, ejemplo de esto son las interfaces graficas y la facilidad en el desarrollo de aplicaciones. La facilidad en la implementación se puede ver en la figura XX, allí se encuentran todos los pasos para entrenar una maquina.. 4. Sof tware creado por Steve Gunn, del Image, speech and intelligent systems group de la Universidad de Southhampton. Se descarga de f orma gratuita de: http://www.isis.ecs.soton.ac.uk/resources/svminfo/. - 22 -.

(23) 4. SELECCIÓN DE CRITERIOS DE ERROR. Como se vio antes, en una serie de tiempo financiera existe una unidad básica de medida conocida como pip. En la aplicación a trabajar un pip equivale a 0.0001 dólares, es decir a un cambio en el cuarto decimal de la serie. Dada esta definición, es necesario definir el número de pips en los que falla cada predicción, y usar este dato como criterio diferenciador en el comportamiento de cada aplicación realizada.. Desde el punto de vista del mercado, una predicción es mejor entre mas veces acierte en la dirección del movimiento, es decir si se predice correctamente una subida o una bajada de la tasa. Por lo tanto, también se tendrá en cuenta como criterio de error el porcentaje de acierto en la dirección. Además para combinar los dos criterios mencionados, se tomaran los siguientes criterios: 1. Porcentaje de acierto en la dirección, 2. Error en pips en la dirección correcta, 3. Error en pips en la dirección errada.. Además de estos criterios, se tomara la correlación entre los datos predecidos y los datos de prueba. Esta correlación nos da un coeficiente matemático de similitud entre los dos vectores. También se tomara el tiempo de ejecución del algoritmo, este se registrara para conocer la eficiencia computacional de cada una de las implementaciones. - 23 -.

(24) 5. PROCEDIMIENTO. Para darle homogeneidad a los resultados, todas las aplicaciones fueron desarrolladas con un conjunto de 1600 datos (ventana de datos anteriores, dato siguiente) y fueron probadas con un conjunto de 400 datos. Algunos preprocesos son necesarios para evitar problemas de sobre ajuste, para evitar que los datos de valor superior afecten el resultado, estos deben ser escalados para asimilarlos a una distribución normal estándar. Dado que el dato predicho es una función de los datos anteriores, el número de datos anteriores seleccionado es muy importante. Para encontrar el mejor criterio en cuanto al tamaño de la ventana se refiere, se deben. desarrollar aplicaciones. variando dicho criterio, para. lo. cual se. seleccionaron ventanas de 1, 3, 5 y 10 datos.. 5.1 ESCALAR Aunque. este procedimiento es. realizado de. forma. automática por las. implementaciones seleccionadas, en la teoría es un paso importante para evitar errores. Para escalar los datos se usa la siguiente formula:. Xi =. X i − µX. σX. Donde µ X es la media del conjunto de datos de entrenamiento y σ X es la desviación estándar. Es importante almacenar los valores de la media y la desviación ya que al probar los resultados deben ser des-escalados. - 24 -.

(25) 5.2 VENTAN AS DE D ATOS. Como se menciono anteriormente los datos se colocaron en ventanas de 1, 3, 5 y 10 datos para evaluar con cual se obtienen mejores resultados. Hay dos formas de construir las ventanas de datos, ventanas consecutivas y ventanas secuénciales (ver Figura. 6). Para evitar que la maquina vea datos de forma repetitiva, los datos de entrenamiento se configuraron en ventanas consecutivas. Por efectos prácticos de cómo debe ser aplicada la predicción en tiempo real, la ventana de datos de prueba es distinta a la de los datos de entrenamiento, y es configurada en ventanas consecutivas.. Figura 7. Esquema de construcción de ventanas de datos.. 5.3 SELECCIÓN DE PARÁMETROS A VARIAR. A parte de la diferencia en los algoritmos implementados, también es necesario variar una serie de parámetros buscando optimizar los resultados. En general se buscara optimizar una a una las aplicaciones realizadas variando: - 25 -.

(26) C: costo de penalización. parámetro kernel: en general los kernels conocidos tienen uno o dos parámetros. El kernel gausiano, tiene un solo parámetro (s). ε: epsilon, es el máximo error permitido de aproximación. Wsize: también se estudiara como cambian los resultados alterando el número de datos de los cuales depende el dato siguiente.. El kernel principal a usar es el kernel gausiano descrito por la función RBF (el parámetro a variar es p):. −( u − v) 2. K (u , v ) = e. 2p2. Este parámetro se varia usando una de las funciones de optimización, que lo que hacen es ir disminuyendo el rango en el cual el proceso se comporta mejor. Además de variar estos parámetros para. optimizar el comportamiento del. algoritmo, es necesario documentar que sucede mientras se varía cada uno de estos en un rango específico. Asi, es posible conocer el comportamiento de los resultados según cada parámetro y con esto se pueden diseñar mejores aplicaciones.. - 26 -.

(27) 6. SVM _KM Este toolbox obtiene resultados satisfactorios en todas las aplicaciones realizadas. Su función interna no realiza una optimización de los parámetros, por lo que las variaciones en el tamaño de la ventana, el costo de penalización y el parámetro del kernel son necesarias. Después de realizar un procedimiento manual de “grid search”, en el que se seleccionan conjuntos aleatorios de parámetros para encontrar un rango de operación satisfactorio, se selecciono el rango de operación mostrado en la tabla 1. Parámetro Mínimo máximo ε. 0.00001. 0.001. Wsize. 1. 10. s. 0.01. 1. C. 10. 250. Tabla 1. Rangos de variación de los parámetros para el toolbox SVM_KM. Se encontró que para este rango la variación de s no era significativa para los resultados, por lo que se estableció un valor estándar de 0.05. El rango de variación de ε, genera una cantidad distinta de vectores de soporte, así estos varían entre 507 y 1587 en este rango. El efecto en la variación de ε es mínimo en el resultado y aunque se pierde precisión a menor cantidad de vectores de soporte, no se gana de forma significativa en eficiencia computacional por lo que es preferible tener un mayor número. - 27 -.

(28) El tamaño de la ventana tampoco genera grandes cambios en el resultado, sin embargo se vio que entre mas grande es el tamaño de la ventana, mas grande es el rango en el que los parámetros funcionan bien. Es decir, para una ventana de 10 datos, los resultados son satisfactorios en un rango mucho mayor que para una ventana de 1 dato. Otro resultado importante es que para costos de penalización por fuera de este rango, el error medio de pips se incrementa notablemente.. Después de los resultados iniciales del grid search, se desarrollaron aplicaciones en el rango mencionado. Variando uno a uno los parámetros se buscaron los mejores resultados, ya que el toolbox no contiene una función de optimización de parámetros. En cuanto a los tiempos de ejecución, se encontró dependencia significativa solamente con el tamaño de la ventana, de resto no se muestran variaciones significativas.5. Al parecer la predicción es bastante buena, sin embargo, al comparar el error medio en pips con el cambio medio entre los datos (∆=7.675 pips) vemos que esta predicción no es útil en la practica para movimientos pequeños. Se hicieron algunas pruebas con separaciones temporales mayores, estas arrojaron buenos resultados pero en general el error medio se aproxima al cambio medio.. 5. Desde el punto de vista practico, cada dato tiene una separacion temporal de 1 hora, por lo que una diferencia de decimas de segundo se considera no significativa.. - 28 -.

(29) El efecto de usar parámetros por fuera del rango establecido es que la maquina no es capaz de seguir las volatilidades de la serie de tiempo. El resultado es que se obtiene una predicción suavizada, que en lenguaje financiero se conoce como una media móvil. Una predicción media móvil, para una serie con separación temporal de 6 horas se puede observar en la figura 9. Este tipo de predicciones son muy útiles en la practica, ya que el inversionista obtiene un valor medio libre de volatilidades, lo cual disminuye el riesgo financiero.. Kernel. s. gaussian 1. ε. wsize. C. 0.0007. 5. 200. #. Error % medio Acierto. en. Vectores Correlación. de. Tiempo(s). en dir pips 46.62. 7.64. soporte 99.26 %. 710. 707.5625. Figura 8. Resultado de la predicción con SVM_KM. - 29 -.

(30) Kernel. s. gaussian 50. %. ε. wsize. C. 0.0010. 5. 600. Error. #. medio Acierto en dir 58.59. Vectores Correlación. Tiempo(s). en. de. pips. soporte. 31.57. 92.10 %. 354. 23.3594. Figura 9. Predicción con SVM_KM por fuera del rango de operación detectado. Otras predicciones se ven en la figura 10 para ventanas de 1 y 3 datos, como se puede observar la correlación es elevada y el resultado es satisfactorio.. - 30 -.

(31) Kernel Gausiano. σ 0.01. % Acierto e DIR 48.37 %. Error medio en pips 7.84. Kernel Gausiano. σ 0.05. % Acierto e DIR 45.61%. Error medio en pips 7.72. wsize 1. % correlación 99.16% Wsize 3 datos. % correlación 99.19%. ε 0.00001. # Vectores de Soporte 1587 ε 0.00001. # Vectores de Soporte 1581. Figura 10. Otros resultados SVM_KM. - 31 -. C 1 Dato. Tiempo (s) 171.5156 C 60. Tiempo (s) 236.4043.

(32) 7. SVM Toolbox. Este toolbox tiene una falla y es que la función de optimización de parámetros no es opcional, sino que cada vez que se corre, es necesario optimizar los parámetros, ya que este es un proceso que toma cerca de 24 horas, estudiar esta implementación es un proceso muy difícil. De acuerdo con lo estudiado, este algoritmo optimiza el costo de penalización (C) y el parámetro del kernel (s), debido a esto no se seleccionaron rangos de operación, excepto por el tamaño de la ventana (1 dato->10datos).. Contrario a lo encontrado con las demás implementaciones, el resultado que mejor comportamiento mostró fue para una ventana de 1 dato. En la figura 11 se observan los detalles de este resultado, sin embargo como el tiempo de entrenamiento incluye la optimización, por lo cual. aparenta ser un algoritmo. ineficiente. Un aspecto para resaltar de este toolbox es que contiene una interfaz grafica muy sencilla que muestra como la regresión se forma a partir de los vectores de soporte. Según las características encontradas, se concluye que este toolbox funciona de manera didáctica con buenos resultados, sobretodo para aplicaciones de 1 dimensión.. Aunque el resultado es bueno el toolbox es ineficiente, e incluso en la ayuda se recomienda realizar una implementación en lenguaje C++ para agilizarlo. Por otro - 32 -.

(33) lado sus funciones son muy completas, incluso da la posibilidad de usar funciones de costo cuadráticas o ε-Insensitive, y su interfaz grafica permite manejar todos los parámetros necesarios. Kernel. s2. Gausiano 1.5. g. wsize. Parámetros. N.A. 1. optimizados. #. Error. Vectores. % Acierto medio en dir. en. Correlación. 7.74. Tiempo(s). soporte. pips 48.37. de. 99.16 %. 1581. 92601. Fig. 11. Resultados para el svm toolbox. Ventana de 1 dato y ε=0.0001.. - 33 -.

(34) 8. LS_SVM. Este toolbox funciona con una función de costo cuadrática, como se menciono antes. La gran ventaja de usar una función de este tipo es que el problema es mucho más fácil de solucionar ya que se convierte en un problema de inversión de matrices. Esta ventaja se observa claramente en la eficiencia computacional de la implementación que en algunos casos es 10 veces más veloz que las demás.. En este toolbox solo hay dos parámetros a variar, uno es el parámetro del kernel (s), y el otro es un parámetro de regularización (g). Aunque inicialmente se trabajo con el mismo rango para s que en el otro toolbox, se encontró que el rango para esta implementación es más amplio. En cuanto al parámetro de regularización, no se observo un cambio significativo en los datos en el rango de operación establecido. parámetro Mínimo Má ximo Wsize. 1. 10. S. 0.1. 100. G. 10. 1500. Tabla 2. Rangos desvariación de los parámetros para el toolbox LS_SVM. Un resultado interesante es que a medida que se disminuye el parámetro del kernel (s), en el rango establecido, el tiempo de entrenamiento se incrementa - 34 -.

(35) exponencialmente. Para todos los tamaños de ventana evaluados se consiguieron aplicaciones con resultados satisfactorios, sin embargo se observo un mejor comportamiento para las ventanas de 5 y 10 datos.. Esta implementación tiene funciones de optimización que pueden usar distintos criterios. Para realizar la optimización de esta aplicación se usaron las funciones “grid search” y “cross validation”, que evalúan un rango de optimización posible, y usan distintos parámetros en subdivisiones del conjunto de entrenamiento hasta encontrar el conjunto de parámetros que mejores resultados obtiene. El algoritmo de optimización es lento (tarda aproximadamente 24 horas), pero una vez se conocen los parámetros el entrenamiento toma entre 2 y 20 segundos dependiendo del tamaño de a ventana.. Dado que se encontraron dos aplicaciones con resultados comparables, estas se detallan en la figura 11 y 12. Funcionan para ventanas de 5 y 10 datos, con correlaciones superiores al 99%. La gran ventaja de esta implementación, sobretodo de la función de costo que utiliza, es el tiempo de ejecución. Como se observa en las figuras 11 y 12, con tiempos muy bajos se obtienen resultados similares o mejores a los obtenidos con el toolbox SVM_KM. La desventaja, según la teoría [4], es que no se obtiene un conjunto disperso de vectores de soporte, lo cual termina en perdida de generalidad de la maquina.. - 35 -.

(36) En la practica de este tipo de aplicaciones, perder generalidad no es un problema grave, ya que mientras se obtengan resultados positivos por lapsos determinados de tiempo, la maquina puede ser reentrenada con nuevos datos para mantener dichos resultados. De hecho, en algunos textos sobre predicciones financieras, se sugiere que debido a la alta volatilidad, e incluso la variación histórica de los parámetros estadísticos de la serie, toda predicción, o estrategia basada en predicciones debería ser reoptimizada cada cierto tiempo.6. Kernel. s2. g. Gausiano 85.4053 585.9571. wsize. Parámetros. 10. optimizados. #. Error % Acierto. Vectores medio. Correlación. en dir. Tiempo(s) de. en pips soporte 45.86 6. 7.59. 99.29 %. N.A. 21.1406. Ver por ejemplo: “The enciclopedia of trading strategies ”, Jeffrey Owen Katz, Donna L Mccormick, Mcgraw Hill. Figura 12. Resultado con toolbox -LS_SVM, para un tamaño de ventana de 10 36 -.

(37) Kernel. s2. g. Gausiano 107.5855 1423.8488. wsize. Parámetros. 5. optimizados. #. Error % Acierto. Vectores medio en Correlación. en dir. de pips. 46.62. Tiempo(s). 7.68. soporte 99.26 %. N.A. 12.0469. Fig. 13. Resultados para LS_SVM, con ventana de 5 datos. Para la aplicación con separación temporal mayor, se encontraron buenos resultados, ya que se consigue buena correlación (95%) y un error medio de 19.45 pips, el cual es muy inferior al cambio medio (22.67 pips). - 37 -.

(38) 9. RESULTADOS, CONCLUSIONES y FUTUR AS IN VESTIGACIONES. Una de las primeras observaciones es que entre menor es el ε, mayor es el numero de vectores de soporte y mayor es la precisión, entrando en el peligro del sobre ajuste. El sacrificio que se hace en este sentido es que la precisión aumenta para cambios pequeños en el valor de la tasa cambiaria, lo cual no es útil en la practica, por eso es mejor usar un ε que asegure que la maquina sea capaz de predecir los movimientos grandes que son lo que generan mas ganancias.. Si en la práctica el error medio de la predicción es comparable con el cambio medio entre los datos, las probabilidades de obtener perdidas son muy elevadas. Sin embargo las predicciones encontradas tienen un altísimo coeficiente de correlación por lo que sirven como guía sobre este tipo de instrumentos de inversión.. En conclusión se define que para predecir la tasa cambiaria del euro contra el dólar, con alta precisión, y eficiencia, se obtienen buenos resultados usando una función de costo cuadrática. Además, es necesario definir un rango de operación de los parámetros en el que el se obtienen resultados satisfactorios (“grid search”), y posteriormente iterar en ese rango hasta encontrar el set optimo (“cross validation”). Finalmente se consigue entrenar la maquina con un set optimo de. - 38 -.

(39) datos y para comprobar su funcionamiento se debe correr la predicción en datos que no se hayan usado para entrenar la maquina.. Obtener los datos. Escalar. Kernel Gausiano Optimización Automática de parámetros. Colocar en ventanas Función de costo cuadrática. • Alta correlación • Bajo tiempo de. entrenamiento • Error medio ideal para realizar inversiones de largo plazo Figura 14. Esquema de la metodología de solución.. También se encontró que usando esta misma metodología se obtienen resultados satisfactorios para distintas separaciones temporales. Y que entre mas amplia es dicha separación, mas se parece esta predicción a una versión suavizada de la serie de tiempo, que en lenguaje financiero se conoce como una media móvil. Ya en estudios anteriores (ver [3]), se demostró la superioridad de la técnica de support vector machines, sobre otras como b ack propagation networks y casebased reasoning, en la predicción de series de tiempo financieras. En este estudio se concluye que mediante la aplicación de la técnica de support vector regression, se obtienen resultados satisfactorios y eficientes. - 39 -.

(40) Para estudios futuros seria interesante comparar el desempeño de la técnica de regresión con el de la de clasificación. Para esto es necesario diseñar un conjunto de datos de los cuales sea posible obtener la predicción, se sugiere usar indicadores financieros como los estocásticos y las medias móviles. También seria de gran interés encontrar un modelo de la forma en que los parámetros estadísticos de este tipo de aplicaciones cambian para así saber como rediseñar las predicciones en el tiempo. Otro tema interesante seria realizar predicciones no solo usando datos anteriores sino también indicadores financieros como la inflación (CPI), o la diferencia entre el indicador y el indicador esperado.. La principal razón para que el índice de acierto no sea importante es que la serie tiene un nivel de ruido muy elevado. Para evitar este problema se pueden hacer dos cosas distintas, la primera es caracterizar el ruido de la serie y entrenar el predictor disminuyendo los niveles de ruido. La otra opción es predecir una versión suavizada de la serie conocida como la media móvil, esta es un promedio temporal de un determinado numero de valores. Se realizaron algunas pruebas con medias de 6 y 60 periodos, al ser mucho mas suaves se obtuvo un acierto en la dirección de 72.35% y 90.11% respectivamente. En la practica estos resultados por si solos no son llamativos, es necesario diseñar una estrategia que los acompañe ya que no contienen completamente la información de la serie como tal.. - 40 -.

(41) BIBLIOGR AFÍA [1] “A Tutorial on Support Vector Machines for Pattern Recognition” J.C Burgues. Data mining and Knowledge discovery, 2, 121-167, 1998. [2] “A tutorial on support vector regression” Alex J. Smola, Benhard Scholkpf. 2004. Satatistics and Computing, 14, 199-22, 2004. [3] “Financial time series forecasting using support vector machines”, Kjoung-jae Kim. Neurocomputing, 55, 307-319, 2003. [4] “Support vector machines for classification and regression”, Steve R. Gunn, School of electronics and computer science, Univesity of Southhampton, 1998. [5] “The Enciclopedia of trading strategies”, Jeffrey Owen Katz, Donna L. McCormick.. - 41 -.

(42)

Referencias

Documento similar