2. Tècniques quantitatives per als Mercats Financers
2
Machine Learning en Inversiones
• Entorno de desarrollo para Inteligencia Artificial. El
lenguaje Python y las librerías para Data Science y ML
• Crash course de Python para Data Science
• El entorno de programación para Python: Jupyter
Notebooks
• La librería científica Numpy
• La librería de análisis de datos Pandas
• La librería de visualización de datos Matplotlib
• El entorno ML Tensorflow de Google
3. Tècniques quantitatives per als Mercats Financers
3
Machine Learning en Inversiones
• Introducción a los métodos de Machine Learning (ML)
– La librería Python Scikit-Learn de ML
– Supervised ML
• Classification algorithms
– Decision Trees
– Validación K-folds
• Regression algorithms
– Linear regression
– Regularization: Ridge, Lasso
– Unsupervised ML
• Clustering
– K-nearest neighbours
• Reducción de dimensiones. Support Vector Machine Classification
– Reinforcement ML y Natural Language Processing (NLP)
4. Tècniques quantitatives per als Mercats Financers
4
Machine Learning en Inversiones
• Caso práctico: Implementación práctica de ML aplicada al riesgo
de default de una empresa
– Datos financieros de las compañías
– Clasificación Decision tree basada en Supervised learning
• Caso práctico: Implementación práctica de ML aplicada a la
optimización de carteras multiactivo
– Hierarchical Risk Parity (HRP)
– ML para construir la cartera óptima rentabilidad/riesgo
– Clustering basado en Unsupervised learning
• Caso práctico: Implementación práctica de ML aplicada a la
selección de inversiones (stocks)
– Datos financieros de acciones cotizadas
– ML para predecir el comportamiento de las acciones
– Regresión basada en Supervised learning
5. Tècniques quantitatives per als Mercats Financers
5
• Bibliografía recomendada:
– “Machine Learning & Data Science Blueprints for Finance”.
Hariom Tatsat, O’Reilly
– “Build you own AI Investor”. Damon Lee
– JPMorgan: Hierarchical Risk Parity: Enhancing Returns at
Target Volatility Apr’2017
– Amundi: Robust Asset Allocation for Robo-Advisors, 2018
6. Tècniques quantitatives per als Mercats Financers
6
• El lenguaje más extendido en machine learning es Python
• Los paquetes de Python para ML:
• Anaconda es un entorno de desarrollo que contiene Python y
varios de estos módulos. Incorpora Jupyter notebooks, como
herramienta básica para la programación
Entorno de desarrollo para Machine Learning
8. Tècniques quantitatives per als Mercats Financers
8
• Un modelo de ML se desarrolla habitualmente mediante un proceso que consiste
en los siguientes pasos:
– Definición del problema y objetivos
– Carga de datos y librerías
– Análisis inicial de los datos: estadísticos, gráficos
– Procesamiento de los datos: limpieza, datos de entrenamiento (training) y
de test
– Modelos y evaluación. Backtests
– Modelo final
• Veamos el proceso completo en ejemplos prácticos: predicción de default de
empresas, y construcción de carteras óptimas riesgo-rentabilidad HRP
Modelos para Inteligencia Artificial
9. Tècniques quantitatives per als Mercats Financers
9
• Tradicionalmente, la predicción de precios de activos financieros se ha realizado
analizando información financiera de la compañía y el comportamiento de las
acciones en el mercado
• Con el aumento de información disponible, los métodos tradicionales y las
estrategias de selección de inversiones están incorporando técnicas de ML
• Tradicionalmente, la inversión por fundamentales consiste en valorar una
compañía, e invertir en esta cuando las acciones tienen un precio inferior a este
valor
• ML no mejora la capacidad de valorar la compañía. Pero permite utilizar los
precios (capitalización de mercado) de la compañía a lo largo del tiempo, junto
con los datos financieros fundamentales, y modelar su correlación
• Vamos a utilizar datos históricos y algoritmos ML para resolver distintos
problemas:
– Predecir la probabilidad de default de una compañía a partir de sus datos
financieros
– Predecir con los datos financieros actuales la rentabilidad en un plazo a un
año de las acciones
Implementación de ML aplicada a la selección de inversiones
10. Tècniques quantitatives per als Mercats Financers
10
• Existen diferentes fuentes para obtener los estados financieros de las
empresas. Podemos utilizar simfin.com
• Otra opción es hacer scrapping de los precios publicados en una web
como Yahoo finance, con las funciones Datareader de la librería pandas
Datos financieros y precios de las acciones
12. Tècniques quantitatives per als Mercats Financers
12
• Utilizaremos una tabla DataFrame de la librería Pandas de
Python para analizar los datos
13. Tècniques quantitatives per als Mercats Financers
13
• Vamos a ver un ejemplo de algoritmo ML de clasificación (Decision
Tree) para estimar la probabilidad de default de una compañía
• Cargamos los datos para entrenar el modelo: compañía en default,
EBIT/Total Assets y MktValEquity/Debt (antes de default)
14. Tècniques quantitatives per als Mercats Financers
14
• Podemos graficar las compañías en default (bankrupt), considerando
sus características de EBIT/Total Assets y Market Cap/Debt
15. Tècniques quantitatives per als Mercats Financers
15
• Vamos a utilizar un algoritmo decision tree que nos permita predecir
compañías que harán default, procesando los datos y entrenando el
algoritmo con los datos de la muestra
• https://scikit-learn.org/stable/
16. Tècniques quantitatives per als Mercats Financers
16
• Utilicemos el algoritmo entrenado para predecir defaults de otras nuevas
compañías, a partir de nueva información
• Podemos verlo gráficamente, con varias compañías y sus características
financieras respectivas. Las reglas de decisión del árbol parecen sencillas: si los
datos están por encima de unos valores, la compañía es probable que quiebre
17. Tècniques quantitatives per als Mercats Financers
17
• El árbol utilizado tiene una profundidad de 2, de modo que el
criterio/frontera de decisión es sencillo. Podemos incorporar también
nuevas variables y profundidad del árbol para mejorar la capacidad
del algoritmo
18. Tècniques quantitatives per als Mercats Financers
18
• El algoritmo del árbol consiste en dividir los datos entre una de las
características/variables en cada nivel de profundidad. Si, por ejemplo,
la profundidad fuera 1, el modelo ya no funcionaría para predecir los
defaults
• El índice Gini es la suma de la probabilidad de seleccionar una compañía
buena y clasificarla (según el algoritmo) mal y la probabilidad de
seleccionar una compañía mala y etiquetarla como buena. Tenemos que
minimizar el índice Gini
19. Tècniques quantitatives per als Mercats Financers
19
• Para evitar sesgos en el entrenamiento del modelo, podemos utilizar submuestras
aleatorias de datos para entrenar (training set) el algoritmo, y utilizar el resto de
datos (testing set) para evaluar la capacidad predictiva del modelo calibrado
• También podemos realizar una validación cruzada (o K-fold cross-validation).
Dividiendo los datos en K grupos (K-folds)
20. Tècniques quantitatives per als Mercats Financers
20
• A medida que aumentamos la profundidad del árbol, la precisión del modelo
parece mejorar. Aunque, realmente, podemos estar haciendo un overfitting de la
muestra de entrenamiento y perder las tendencias más generales de los datos
Depth=6 Depth=10
21. Tècniques quantitatives per als Mercats Financers
21
• Vamos a implementar a continuación un modelo de construcción de
carteras multiactivo óptimas (asset allocation) basado en clustering
• Los clústers se obtienen a partir de la matriz de covarianzas. Y las
ponderaciones en cartera se realizan a partir de los niveles de
jerarquías de los clústers. De modo que, activos correlacionados
(mismo nivel) tienen el mismo peso conjuntamente que el de un activo
individual descorrelacionado
• Esta metodología resuelve las limitaciones de un modelo de
optimización de media-varianza como Markowitz
Implementación de ML aplicada a la construcción de carteras
22. Tècniques quantitatives per als Mercats Financers
22
• Importamos algunas librerías en Python (puede ser necesario instalar
previamente, además, las funciones matemáticas: ffn y cvxopt)
• También las librerías necesarias para cargar y procesar los Datos
23. Tècniques quantitatives per als Mercats Financers
23
• Utilizaremos para el ejemplo los datos desde 2018 de las acciones del
índice de renta variable US S&P500. Tratamos los datos descargados
24. Tècniques quantitatives per als Mercats Financers
24
• El clustering (unsupervised learning) lo obtendremos de las
rentabilidades anuales de una muestra de entrenamiento de los datos.
A posteriori, utilizamos datos para hacer test del modelo
• Buscamos clusters de correlaciones –a partir de una medida añadida
de distancia-, con el método agglomerate hierarchical clustering. Esta
técnica parte de cada activo –hojas- como clusters (proceso bottom-
up) y va vinculando los clusters mediante un árbol (dendograma)
hasta llegar a un solo nodo o cluster final (raíz)
25. Tècniques quantitatives per als Mercats Financers
25
• Graficamos los clusters (nodos del dendograma). El eje x representa
los clusters, mientras que y es la distancia entre los clusters
• A continuación, podemos utilizar los vínculos (linkages) para construir
la cartera de inversiones (el asset allocation), ponderando según el
modelo Hierarchical Risk Parity (HRP)
26. Tècniques quantitatives per als Mercats Financers
26
• Recordamos los pasos principales vistos en una sesión previa del
método Hierarchical Risk Parity (HRP) para obtener carteras óptimas
riesgo-rentabilidad:
– Tree clustering. Agrupamos los activos correlacionados en grupos
(clusters). Esto permite mejorar la estabilidad numérica de los
optimizadores media-varianza cuando invertimos la matriz de
varianzas-covarianzas
– Matriz de Covarianzas quasi-diagonal. Activos similares, se
agrupan en la matriz modificada. La optimización mejora
(numéricamente) con el cálculo de la inversa de la matriz
modificada
– Bisección recursiva. Realizamos las ponderaciones según la
covarianza de cada cluster, de manera recursiva hasta las hojas,
empezando por la raíz
29. Tècniques quantitatives per als Mercats Financers
29
• Cálculo de los pesos de los activos en la cartera óptima HRP
30. Tècniques quantitatives per als Mercats Financers
30
• Comparamos HRP con el modelo tradicional de media-varianza
de Markowitz
31. Tècniques quantitatives per als Mercats Financers
31
• Asset allocation (diversificación) de las carteras óptimas
Media-Varianza vs HRP
32. Tècniques quantitatives per als Mercats Financers
32
• Backtest de los resultados de cada modelo. Utilizaremos los datos
de entrenamiento (in-sample) y los datos de test (out-of-sample)
33. Tècniques quantitatives per als Mercats Financers
33
• Podemos también comparar los modelos a partir de su ratio de Sharpe
• HRP obtiene mejor rentabilidad por unidad de riesgo. HRP es una
metodología más robusta frente a escenarios volátiles