Diplomado en Data Science and Machine Learning Applied to Financial Markets.
ÁREA: FINANZAS Y CONTABILIDAD
HORARIO: MARTES DE 19:00 A 22:00 H. Y JUEVES DE 19:00 A 22:00 H.
MÓDULOS A CURSAR: 5
HORAS: 150
NOTAS: LAS SESIONES SE LLEVARAN A CABO CON EL USO DE LA HERRAMIENTA ZOOM.
ACERCA DEL PROGRAMA.
En el diplomado se presentarán las herramientas necesarias para el desarrollo de la ciencia de datos en un ámbito financiero. Los participantes utilizarán estas herramientas para analizar, manipular, comprender y representar datos. Además, adquirirán bases teóricas y de programación para comprender los modelos de inteligencia artificial y para aplicar el mejor modelo a un problema dado.
¿A QUIÉN VA DIRIGIDO?.
A profesionistas del sector financiero del país (bancos, casas de bolsa, sociedades de inversión, afores, casas de cambio, operadores de derivados, socios liquidadores, arrendadoras financieras, empresas de factoraje financiero, compañías de seguros y fianzas, entidades gubernamentales, entidades reguladoras, consultorías, etc.), en las áreas financieras o en las de planeación de empresas no financieras que quieran especializarse en inteligencia artificial aplicada a los mercados financieros. Los participantes deben poseer nociones de programación y bases sólidas de matemáticas financieras, álgebra lineal, cálculo y estadística. Es indispensable traer una computadora portátil a las sesiones (con procesador i5 o equivalente).
TEMARIO
MÓDULO 1
INTRODUCCIÓN A PYTHON CON FINANZAS
Objetivo
En este módulo, los participantes conocerán el lenguaje de programación Python por medio de
aplicaciones en finanzas. Python es conocido por su uso en aplicaciones en ciencia de datos y
aprendizaje de máquina, y su base de usuarios es de las que tiene mayor crecimiento en el mundo.
Temario
1. Introducción a la programación
1.1.Programación y aplicaciones
1.2.Lenguajes
1.3.Por qué Python
1.4.Entornos de ejecución (Consola, Atom, Jupyter notebooks, Spider, Google colab)
2
2. Estructuras y tipos de datos en Python
2.1.Cadenas, flotantes y enteros
2.2.Variables
2.3.Listas y tuplas
2.4.Diccionarios y conjuntos
3. Instrucciones de control
3.1.Álgebra Booleana
3.2.Booleanos
3.3.Condicionales
4. Ciclos
4.1.For
4.2.While
5. Funciones
5.1.Motivación
5.2.Parámetros
5.3.Regreso de valores
5.4.Recursividad
6. Módulos y librerías estándar
7. Creación e importación de módulos Instalación de módulos vía PIP e IDE Librería estándar
(DateTime, Collections,Os, math)Programación funcional
7.1.Funciones lambda
7.2.Aplicaciones de Lambda: Map, Filter, Reduce
7.3.List Comprehensions
7.4.Predicados: funciones any, all
8. Programación orientada a objetos
8.1.¿Qué es la POO?
8.2.Objetos y clases
8.3.Métodos
8.4.Herencia
8.5.Instanciar una clase
8.6.Clases
8.7.Estructura de una clase
9. Manejo y aritmética de fechas
9.1.Date
9.2.Date Time
9.3.Time
10.Pandas
10.1. Dataframes
10.2. Creación de Dataframes
10.3. Lectura de archivos
10.4. Exportar archivos
10.5. Selección por posición, etiqueta e índices lógicos
10.6. Unión de Dataframes, left join, right join y full join
11.Introducción a Numpy
11.1. Operaciones con arreglos y matrices
12.Primeras aplicaciones financieras en Python
12.1. Extracción de información de Bloomberg con Python
12.2. Matemáticas financieras
12.2.1. Convenciones de tasas de interés
12.2.2. Ecuaciones de valor
12.2.3. Anualidades
12.2.4. Tablas de amortización
12.3. Mercado de dinero
12.3.1. Valuación de bonos
3
12.3.2. Tasas de rendimiento
12.3.3. Medidas de riesgo
12.3.3.1. Duración
12.3.3.2. Convexidad
12.3.4. Interpolación
MÓDULO 2
ESTADÍSTICA Y PROBABILIDAD CON PYTHON
Objetivo
Los participantes se familiarizarán con las principales áreas de conocimiento para fortalecer su
capacidad de elaborar modelos avanzados y matemáticamente rigurosos mediante el lenguaje de
programación Python.
Temario
1. Álgebra lineal en Python
1.1.Matrices, vectores y escalares
1.2.Operaciones con matrices
1.2.1. Suma
1.2.2. Resta
1.2.3. Multiplicación
1.3.Determinantes e inversas
1.4.Eigenvalores y Eigenvectores
1.5.Aplicaciones
2. Teoría de la información
2.1.Definiciones y principales conceptos
2.1.1. Entropía
2.1.2. Redundancia
2.1.3. Incertidumbre
2.2.Medidas probabilísticas
2.2.1. Información mutua
2.2.2. Divergencia KL)
3. Probabilidad
3.1.Definiciones y conceptos básicos
3.2.Implementaciones en Python de conceptos básicos
3.2.1. Esperanza
3.2.2. Varianza
3.2.3. Covarianza
3.3.Distribuciones Discretas e implementación en Python
3.3.1. Bernoulli
3.3.2. Binomial
3.3.3. Multinomial
3.3.4. Geométrica
3.3.5. Poisson
3.3.6. Binomial Negativa
3.4.Distribuciones continuas e implementación en Python
3.4.1. Uniforme
3.4.2. Normal
3.4.3. Chi cuadrada
3.4.4. Exponencial
3.4.5. Normal multivariada
3.4.6. Distribución t de Student
3.4.7. Distribución F
3.4.8. Gamma
4
3.4.9. Beta
3.4.10. Dirichlet
3.5.El teorema de Bayes
3.5.1. Definición
3.5.2. Implementación en Python
4. Estadística inferencial aplicada
4.1.Estimación de Máxima Verosimilitud
4.2.Regresión lineal
4.2.1. Estimación por mínimos cuadrados
4.2.2. Teorema de Gauss -Markov
4.2.3. Estimación por máxima verosimilitud
4.2.4. Supuestos regresión lineal paramétrica
4.2.5. Implementación regresión lineal en Python
5. Estadística bayesiana aplicada
6. Aplicaciones a matemáticas de portafolios
MÓDULO 3
CIENCIA DE DATOS
Objetivo
Los participantes examinarán las herramientas y las ideas esenciales de la ciencia de datos como
análisis previo a aplicaciones más rigurosas. Se pondrán de relieve las aplicaciones de la ciencia
de datos para explorar datos financieros desde una nueva perspectiva.
Temario
1. Bases de datos y SQL
1.1.Introducción a las bases de datos con MySQL
1.2.Relación entre tablas: llaves primarias y foráneas
1.3.Creación de una base de datos
1.4.Consultas en una base de datos
1.5.Python – SQL
1.5.1. SQLAlchemy
2. Python científico
2.1.Numpy: arreglos matriciales
2.2.Gráficas científicas con Matplotlib
2.3.Herramientas científicas con Scipy
3. Introducción al análisis de datos
3.1.DataFrames con Pandas
3.2.Manipulación de información
3.2.1. Desde una base de datos
3.2.2. CSV
3.2.3. JSON
3.3.Creación de nuevas variables
3.4.Limpieza y validación de información
3.5.Webscrapping
3.5.1. Lenguaje html, CSS y el DOM
3.5.2. Request, Get y Post
3.5.3. Acopio de información
3.5.4. Limpieza de información
3.5.5. Extracción de información de textos
3.5.6. Selenium
4. Análisis de datos financieros
5
4.1.Sentimiento de mercado
4.2.Análisis de tendencias en distintos subyacentes
5. Análisis y construcción de portafolios
5.1.Medición del desempeño
5.2.Factores explicativos del desempeño
6. Análisis del lenguaje natural
6.1.Sentimiento de mercado
6.1.1. Redes sociales
6.1.2. Noticias
6.1.3. Expresiones regulares (regex)
6.1.4. N-Grams
6.1.5. Naive Bayes
7. Detección de oportunidades de inversión
7.1.Estrategias de valor relativo
7.1.1. Curvas de tasas de interés
7.1.2. Volatilidad
7.2.Robo-advisor
8. Trading algorítmico
8.1.Costos de transacción
8.2.Cobertura e impacto en liquidez
8.3.Ejecución de órdenes
8.4.Trading de pares
8.5.Reversión a la media
MÓDULO 4
MACHINE LEARNING
Objetivo
Los participantes conocerán la teoría, los conceptos y las prácticas del aprendizaje de máquina, un
subconjunto del campo de la inteligencia artificial, y entenderán el uso de modelos con librerías de
Python. Examinarán las aplicaciones para administración de riesgos de mercado, crédito y
contraparte, y estudiarán la generación e implantación de estrategias de trading.
Temario
1. Introducción al aprendizaje de máquina
1.1.¿Aprendizaje de máquina o inteligencia artificial?
1.2.Nociones básicas
1.2.1. Definición y motivación para métodos de aprendizaje
1.2.2. Modelos supervisados
1.2.3. Modelos no supervisados
1.3.La regresión lineal en el aprendizaje de máquina
1.4.Overfitting y underfitting
2. Selección y entrenamiento de modelos
2.1.Cross-Validation
2.2.Regularización
2.2.1. L1
2.2.2. L2
2.2.3. Elastic Net
2.3.El método del gradiente descendente
2.4.Normalización
3. Modelos supervisados
3.1.Modelos de Clasificación
3.1.1. Logística
6
3.1.2. Árbol de decisión
3.1.3. SVM
3.2.Modelos de Regresión
3.2.1. Regresión generalizada
3.2.2. Árboles de Regresión
3.2.3.
3.3.La regresión logística
3.3.1. Análisis de errores
3.4.Árboles de decisión
3.4.1. El algoritmo CART
3.5.Máquinas de soporte vectorial
3.5.1. Motivación
3.5.2. Lagrangianos
3.5.3. kernel trick
3.5.4. El algoritmo SMO
4. Ensemble Learning
4.1.Random Forests
4.2.Votos de clasificadores
4.3.Bagging
4.4.Boosting
4.5.Multiestrategia de selección de portafolios
5. Modelos no supervisados
5.1.K-Nearest Neighbors
5.2.K-means
5.3.Cálculo de la densidad de kernel
5.4.Reducción de dimensiones
5.4.1. PCA
5.4.2. T-SNE
5.4.3. Construcción de curvas de tasas de interés ajustadas por colateral
5.4.4. Volatilidades implícitas
6. Aprendizaje de máquina para series de tiempo
6.1.Series de tiempo
6.2.Series de tiempo como un problema de aprendizaje de máquina
6.3.Validación de modelos de series de tiempo
7. Aplicaciones
7.1.Detección de fraudes en un ámbito no supervisado
7.2.Distribución de rendimientos positivos y negativos
7.3.Perfilamiento de inversionistas
7.4.VaR mediante aprendizaje de máquina
7.5.Medición del riesgo de crédito y riesgo de contraparte
7.5.1. Simulación Montecarlo
7.5.2. Estimación de Credit Value Adjustment (CVA)
8. Optimización de portafolios
8.1.Modelos dinámicos convexos
8.2.Restricciones de régimen de inversión
8.3.Restricciones no genéricas:
8.3.1. Apalancamiento
8.3.2. Liquidez
MODULO 5
DEEP LEARNING
Objetivo
Los participantes se introducirán en la teoría y las ideas de las redes neuronales y sus usos y
entenderán el poder de los modelos que se encuentran a la cabeza de importantes empresas de
tecnología.
Temario
1. Funciones de activación
1.1.La función sigmoidal
1.2.Tangente hiperbólica
1.3.ReLu
2. Las redes FeedForward
2.1.El algoritmo del perceptrón
2.2.Redes neuronales de una capa
2.3.Redes neuronales multicapa
2.4.El método de backpropagation
3. Métodos de aprendizaje
3.1.Gradiente descendente
3.2.Momentum
3.3.Nesterov
3.4.AdaGrad
3.5.Adam
3.6.Momentum con tasa de aprendizaje sistematizada
4. Regularización
4.1.L1 y L2 para una red neuronal
4.2.Batch Norm
4.3.Dropout
5. Redes neuronales convolucionales
5.1.Filtros
6. Autoencoders
7. Redes neuronales recurrentes
7.1.El problema del gradiente divergente
7.2.Entrenamiento de una RNN
7.3.General Recurrent Unit (GRU)
7.4.Long Short Term Memory (LSTM)
8. Aplicaciones
8.1.Rendimientos esperados
8.2.Portafolios
8.3.Estimación de CVA
8.4.Desarrollos experimentales: el caso de México
8.4.1. Inversión mediante la aproximación de fundamentales
8.4.2. LSTMs para series de tiempo