Machine Learning For Financial Risk Management With Python Algorithms Espanol
Machine Learning For Financial Risk Management With Python Algorithms Espanol
Abdullah Karasan
Machine Translated by Google
Aprendizaje automático para la gestión de riesgos financieros con Python por Abdullah
Karasan
Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA
95472.
Los libros de O'Reilly se pueden comprar para uso educativo, comercial o promocional
de ventas. También hay ediciones en línea disponibles para la mayoría de los
títulos (http://oreilly.com). Para obtener más información, comuníquese con nuestro departamento
de ventas corporativo/institucional: 8009989938 o [email protected].
Las opiniones expresadas en este trabajo son las del autor y no representan las
opiniones del editor. Si bien el editor y el autor han realizado esfuerzos de buena fe para
garantizar que la información y las instrucciones contenidas en este trabajo sean
precisas, el editor y el autor renuncian a toda responsabilidad por errores u omisiones,
incluida, entre otras, la responsabilidad por los daños resultantes del uso o
confianza en este trabajo.
El uso de la información y las instrucciones contenidas en este trabajo es bajo su propio
riesgo. Si algún ejemplo de código u otra tecnología que este trabajo contiene o describe está
sujeto a licencias de código abierto o derechos de propiedad intelectual de otros, es su
responsabilidad asegurarse de que su uso cumpla con dichas licencias y/o derechos.
9781492085188
[LSI]
Machine Translated by Google
Prefacio
Los modelos financieros tienen una larga historia con muchas tareas realizadas con éxito, pero al mismo
tiempo han sido duramente criticados debido principalmente a la falta de flexibilidad y la falta de inclusión
de estos modelos. La crisis financiera de 20072008 alimentó este debate y allanó el camino para innovaciones
y diferentes enfoques en el campo de la modelización financiera.
Por supuesto, esta crisis financiera no es la mera razón que precipita el crecimiento de las aplicaciones
de IA en las finanzas, sino que también hay otros dos factores principales que han estimulado la
adopción de la IA en las finanzas. Dicho esto, la disponibilidad de datos ha mejorado la potencia
informática e intensificado las investigaciones en la década de 1990.
—FSB
Como subrama del modelado financiero, la gestión de riesgos financieros ha ido evolucionando con la
adopción de la IA en paralelo con un papel cada vez mayor en el proceso de toma de decisiones
financieras. En su célebre libro, Bostrom (2014) denota que existen dos revoluciones importantes en la
historia de la humanidad: la Revolución Agrícola y la Revolución Industrial. Estas dos revoluciones
tienen un impacto tan profundo que cualquier tercera revolución de magnitud similar duplicaría el tamaño
de la economía mundial en dos semanas. Aún más sorprendente, si
Machine Translated by Google
Si la tercera revolución se logra mediante la inteligencia artificial, el impacto sería mucho más
profundo.
Por lo tanto, hay grandes expectativas acerca de que las aplicaciones de IA den forma a la
gestión de riesgos financieros a una escala sin precedentes mediante el uso de big
data y la comprensión de la compleja estructura de los procesos de riesgo.
Con este estudio, mi objetivo es llenar el vacío sobre las aplicaciones basadas en
el aprendizaje automático en finanzas para que se pueda mejorar el rendimiento predictivo y
de medición de los modelos financieros. Dado que los modelos paramétricos sufren un
problema de baja varianza y alto sesgo, los modelos de aprendizaje automático, con su
flexibilidad, pueden abordar este problema. Además, como problema común en finanzas,
cambiar la distribución de los datos siempre supone un obstáculo para la viabilidad del
resultado del modelo, pero los modelos de aprendizaje automático pueden adaptarse a este
patrón cambiante de una manera que los modelos se ajusten mejor. Por lo tanto, existe una
gran necesidad y demanda sobre los modelos de aprendizaje automático aplicables en
finanzas y lo que distingue principalmente a este libro es la inclusión de nuevos enfoques de
modelado basados en el aprendizaje automático en la gestión de riesgos financieros.
En pocas palabras, este libro pretende cambiar el panorama actual de la gestión de riesgos
financieros, que se basa en gran medida en modelos paramétricos. La principal motivación
para este cambio es la experiencia reciente en modelos financieros de alta precisión basados
en modelos de Machine Learning. Por lo tanto, este libro está destinado a aquellos que tienen
algunas ideas iniciales sobre las finanzas y el aprendizaje automático, en el sentido de que
solo proporciono breves explicaciones sobre estos temas.
En consecuencia, el público objetivo del libro incluye, entre otros, analistas de riesgos
financieros, ingenieros financieros, asociados de riesgos, modeladores de riesgos, validadores
de modelos, analistas de riesgos cuantitativos, analistas de carteras y aquellos interesados
en las finanzas y la ciencia de datos.
tiempo y consulte otros libros sobre finanzas y ciencia de datos junto con este
uno.
Capítulo 1
Capitulo 2
Capítulo 3
Capítulo 4
Capítulo 5
Capítulo 6
Capítulo 7
El modelo de mezcla gaussiana se utiliza para modelar la liquidez, que se cree que
es una dimensión descuidada en la gestión de riesgos. Este modelo nos permite
incorporar diferentes aspectos de los indicadores de liquidez en este capítulo para que
Machine Translated by Google
que seremos capaces de captar el efecto de la liquidez sobre el riesgo financiero de una
manera más sólida.
Capítulo 8
Cubre el riesgo operativo, que puede resultar en una falla debido principalmente a
debilidad interna de la empresa. Existen varias fuentes de riesgos operativos, pero el
riesgo de fraude es uno de los que consume más tiempo y es más perjudicial para las
operaciones de la empresa. Aquí, en este capítulo, el fraude será nuestro enfoque
principal y se desarrollarán nuevos enfoques para tener una aplicación de fraude
de mejor rendimiento basada en modelos de aprendizaje automático.
Capítulo 9
Capítulo 10
Hace uso de datos sintéticos para estimar diferentes riesgos financieros. El objetivo de este
capítulo es resaltar el surgimiento de datos sintéticos que nos ayudan a minimizar el impacto
de los datos históricos limitados. Entonces, los datos sintéticos nos permiten tener
datos suficientemente grandes y de alta calidad, lo que mejora la calidad del modelo.
Machine Translated by Google
Parte I. Fundamentos de
Gestión de Riesgos
Machine Translated by Google
Con los libros electrónicos de lanzamiento anticipado, obtiene libros en su forma más
antigua (el contenido sin editar y sin editar del autor mientras escribe) para que pueda
aprovechar estas tecnologías mucho antes del lanzamiento oficial de estos títulos.
Este será el primer capítulo del libro final. Tenga en cuenta que el repositorio de GitHub se
activará más adelante.
En 2007, nadie hubiera pensado que las funciones de riesgo podrían haber cambiado
tanto como lo han hecho en los últimos ocho años. Es una tentación natural esperar que la
próxima década contenga menos cambios.
Sin embargo, creemos que probablemente ocurrirá lo contrario.
Antes de entrar en detalles y discutir estas herramientas, vale la pena presentar los principales
conceptos de gestión de riesgos. Así, esta parte del libro presenta conceptos básicos de gestión
de riesgos financieros, a los que me referiré a lo largo del libro. Estos conceptos incluyen
riesgo, tipos de riesgos, gestión de riesgos, rendimientos y algunos conceptos relacionados con
la gestión de riesgos.
Riesgo
El riesgo siempre está presente durante el curso de la vida, pero comprenderlo y evaluarlo
es un poco más difícil que conocerlo debido a su naturaleza abstracta. El riesgo se percibe como
algo peligroso y puede presentarse en forma esperada o inesperada. El riesgo esperado es algo
que se tiene en cuenta, pero el riesgo inesperado apenas puede contabilizarse, por
lo que podría ser devastador.
Cualquier evento o acción que pueda afectar negativamente la capacidad de una organización
para lograr sus objetivos y ejecutar sus estrategias o, alternativamente, la probabilidad
cuantificable de pérdida o retornos menores a los esperados.
Estas definiciones se centran en el lado negativo del riesgo, lo que implica que el costo va de la
mano con el riesgo, pero también cabe señalar que no existe necesariamente una relación uno a
uno entre ellos. Por ejemplo, si se espera un riesgo, el costo incurrido es relativamente menor (o
incluso ignorable) que el del riesgo inesperado.
Devolver
Todas las inversiones financieras se realizan para obtener beneficios, lo que también se denomina
rentabilidad. Más formalmente, el rendimiento es la ganancia obtenida por una inversión en un
período de tiempo determinado. Por tanto, el rendimiento se refiere al lado positivo del riesgo. A
lo largo del libro, riesgo y rendimiento se referirán al riesgo a la baja y al alza, respectivamente.
Como se puede imaginar, existe una compensación entre riesgo y rendimiento: cuanto mayor
sea el riesgo asumido, mayor será el rendimiento obtenido. Dado que encontrar una solución
óptima es una tarea formidable, esta compensación es una de las cuestiones más
controvertidas en el ámbito financiero. Sin embargo, Markowitz (1952) propone una solución
intuitiva y atractiva a este problema de larga data. La forma en que definió el riesgo, que
hasta entonces era ambigua, es agradable y clara y condujo a un cambio en el panorama de la
investigación financiera. Markowitz (1952) utilizó la desviación estándar σRi para cuantificar el
riesgo. Esta definición intuitiva permite a los investigadores utilizar las matemáticas y la estadística
en las finanzas. La desviación estándar se puede definir matemáticamente como (Hull, 2012):
σ = √E(R2) − [E(R)] 2
2 2
2 = w aσa 2 + w bσ b + 2wawbCov(ra, rb)
2σp _ _
σp = √σ2 pag
E(R) = ∑n wiRi
i = w1R1 + w2R2 + wnRn
Exploremos la relación riesgoretorno mediante visualización. Para ello, se construye una
cartera hipotética para calcular las estadísticas necesarias con Python.
En [2]: n_activos = 5
n_simulación = 500
def port_return(devoluciones):
rets = np.mean(devoluciones, eje=1)
cov = np.cov(rets.T, aweights=weights, ddof=1)
portfolio_returns = np.dot(weights, rets.T)
portfolio_std_dev = np.sqrt(np.dot(pesos, np.dot(cov, pesos))) retorno
portfolio_returns, portfolio_std_dev
En [6]: imprimir(portfolio_returns)
imprimir(portfolio_std_dev)
0.005773455631074148
0.016994274496417057
ancho=900, alto=470)
plotly.offline.iplot(fig, filename="images/risk_return.png") fig.show()
Generar muestras aleatorias a partir de una distribución normal utilizadas como rendimientos.
Calcular pesos
Gestión de riesgos
La gestión del riesgo financiero es un proceso para hacer frente a las incertidumbres
resultantes de los mercados financieros. Implica evaluar los riesgos financieros que
enfrenta una organización y desarrollar estrategias de gestión consistentes con las prioridades
y políticas internas (Horcher, 2011).
Según esta definición, como cada organización enfrenta diferentes tipos de riesgos, la
forma en que una empresa los aborda es completamente única. Toda empresa debe
evaluar adecuadamente y tomar las medidas necesarias contra el riesgo. Sin embargo,
esto no significa necesariamente que una vez que se identifica un riesgo, deba mitigarse tanto
como pueda hacerlo una empresa.
Gestionar el riesgo es una tarea delicada, tiene un coste y, aunque afrontarlo requiere
políticas empresariales específicas, existe un marco general para posibles estrategias de
riesgo. Estos son:
Ignorar: En esta estrategia las empresas aceptan todos los riesgos y sus
consecuencias y prefieren no hacer nada.
Las empresas financieras se enfrentan a diversos riesgos a lo largo de su vida empresarial. Estos
riesgos se pueden dividir en diferentes categorías para identificarlos y evaluarlos de manera más sencilla.
Estos principales tipos de riesgo financiero son el riesgo de mercado, el riesgo de crédito, el riesgo
operativo y el riesgo de liquidez, pero nuevamente esta no es una lista exhaustiva.
Sin embargo, limitamos nuestra atención a los principales tipos de riesgos financieros a lo largo del libro.
Echemos un vistazo a estas categorías de riesgo.
Riesgo de mercado
Este riesgo surge debido a un cambio de factores en el mercado financiero. Para ser más claro, por
ejemplo, un aumento en la tasa de interés podría afectar negativamente a una empresa que tiene una
posición corta.
Se puede dar un segundo ejemplo sobre otra fuente de riesgo de mercado; tipo de cambio.
Una empresa que participa en el comercio internacional, cuyos productos básicos se cotizan en dólares
estadounidenses, está muy expuesta a un cambio en dólares estadounidenses.
Como se puede imaginar, cualquier cambio en el precio de las materias primas podría representar una
amenaza para la sostenibilidad financiera de una empresa. Hay muchos factores fundamentales que
tienen un efecto directo sobre el precio de las materias primas, que son los actores del mercado, los
costos de transporte, etc.
Riesgo crediticio
El riesgo de crédito es uno de los riesgos más generalizados. El riesgo crediticio surge cuando la
contraparte no cumple con la deuda. Por ejemplo, si un prestatario no puede pagar su pago, se realiza el
riesgo crediticio. El deterioro de la calidad crediticia también es una fuente de riesgo a través de la
reducción del valor de mercado de los valores que una organización podría poseer (Horcher,
2011).
Riesgo de liquidez El
riesgo de liquidez se ha pasado por alto hasta la crisis financiera de 20072008, que afectó duramente
al mercado financiero. A partir de entonces se intensificaron las investigaciones sobre el riesgo de
liquidez. La liquidez se refiere a la velocidad y facilidad con la que un
Machine Translated by Google
Si una empresa no puede convertir sus activos en efectivo en un corto período de tiempo,
entra en la categoría de riesgo de liquidez y es bastante perjudicial para la gestión
financiera y la reputación de la empresa.
Riesgo operacional
La gestión del riesgo operativo va más allá de ser una tarea clara y previsible y explota una gran
cantidad de recursos de una empresa debido a la naturaleza compleja e interna del riesgo.
Ahora las preguntas son: ¿Cómo hacen las empresas financieras un buen trabajo para gestionar
el riesgo? ¿Asignan recursos necesarios para esta tarea? ¿Se mide adecuadamente la
importancia del riesgo para la sostenibilidad de una empresa?
Como sugiere el nombre, el riesgo operativo surge cuando las operaciones inherentes a una
empresa o industria representan una amenaza para las operaciones diarias, la rentabilidad o la
sostenibilidad de esa empresa. El riesgo operativo incluye actividades fraudulentas, incumplimiento
de regulaciones o procedimientos internos, pérdidas por falta de capacitación, etc.
Bueno, ¿qué pasa si una empresa se expone a uno o más de uno de estos riesgos sin estar
preparada? Aunque no es frecuente, conocemos la respuesta por los acontecimientos
históricos, la empresa podría incumplir y toparse con un gran cuello de botella financiero.
importancia tiene la gestión de riesgos? Esta cuestión puede abordarse en un libro de cientos de
páginas pero, de hecho, el aumento de la gestión de riesgos en las instituciones financieras
habla por sí solo. En particular, después de la crisis financiera global, la gestión de riesgos
se caracteriza como un “fracaso colosal de la gestión de riesgos” (Buchholtz y Wiggins,
2019). De hecho, la crisis financiera mundial que surgió en 20072008 es sólo la punta del
iceberg. Numerosos fracasos
Machine Translated by Google
en la gestión de riesgos allanan el camino para este colapso del sistema financiero.
Para comprender este colapso, debemos volver a profundizar en los fracasos pasados de la
gestión de riesgos financieros. Un fondo de cobertura llamado LongTerm Capital
Management (LTCM) presenta un ejemplo vívido de colapso financiero.
LCTM forma un equipo con académicos y profesionales de primer nivel. Esto provocó una
entrada de fondos a la empresa y comenzó a cotizar con mil millones de dólares. En 1998,
LCTM controlaba más de 100 mil millones de dólares e invirtió fuertemente en algunos
mercados emergentes, incluida Rusia. Así, el impago de la deuda rusa afectó
1 hacia la calidad y recibió un duro golpe,
profundamente a la cartera de LCTM debido a su fuga
lo que llevó a LCTM a la quiebra (Allen, 2003).
Metallgesellschaft (MG) es otra empresa que ya no existe debido a una mala gestión de los
riesgos financieros. MG operaba principalmente en los mercados del gas y el petróleo.
Debido a la alta exposición a los precios del gas y el petróleo, MG necesitaba fondos
tras la gran caída de los precios del gas y el petróleo. El cierre de la posición corta generó
pérdidas de alrededor de 1,5 mil millones de dólares.
Amaranth Advisors (AA) es otro fondo de cobertura que quebró debido a sus fuertes inversiones
en un mercado único y a no evaluar correctamente los riesgos derivados de sus inversiones.
En 2006, AA atrajo aproximadamente 9 mil millones de dólares en activos bajo administración,
pero perdió casi la mitad debido a la caída de los futuros y opciones del gas natural. El
incumplimiento de AA se atribuye a los bajos precios del gas natural y a modelos de riesgo
engañosos (Chincarini, 2008).
En pocas palabras, el artículo de Stulz titulado "Fallos en la gestión de riesgos: ¿qué son y
cuándo suceden?" (2008) resumen las principales fallas en la gestión de riesgos
que resultan en incumplimiento:
Por lo tanto, la crisis financiera global no fue el único evento que llevó a los reguladores e instituciones a
rediseñar su gestión de riesgos financieros. Más bien, es la gota que llenó el vaso y, tras la crisis,
tanto los reguladores como las instituciones adoptaron las lecciones aprendidas y mejoraron sus
procesos.
Con el tiempo, esta serie de acontecimientos condujo a un aumento en la gestión del riesgo financiero.
la suposición de que un
Tomar decisiones es como hablar en prosa: la gente lo hace todo el tiempo, a sabiendas o
sin saberlo. No sorprende, entonces, que el tema de la toma de decisiones sea compartido por
muchas disciplinas, desde las matemáticas y la estadística, pasando por la economía y las
ciencias políticas, hasta la sociología y la psicología.
La asimetría de la información y la gestión del riesgo financiero van de la mano, ya que el costo de
financiación y la valoración de las empresas se ven profundamente afectados por la asimetría de la
información. Es decir, la incertidumbre en la valoración de los activos de una empresa podría aumentar
el costo de endeudamiento, lo que representa una amenaza para la sostenibilidad de una empresa
(véanse DeMarzo y Darrell (1995) y Froot, Scharfstein y Stein (1993)).
Por lo tanto, las raíces de los fracasos descritos anteriormente son más profundas, de tal manera
que el mundo hipotético perfecto en el que vive el tomador de decisiones racional es incapaz de
explicarlos. En este punto entran en juego los instintos humanos y el mundo imperfecto y una mezcla de
disciplinas proporciona justificaciones más plausibles. Entonces, resulta que la selección adversa y el
riesgo moral son dos categorías destacadas que explican las fallas del mercado.
Selección adversa
Machine Translated by Google
Es un tipo de información asimétrica en la que una parte intenta explotar su ventaja informativa.
La selección adversa surge cuando el vendedor está mejor informado que los compradores.
Este fenómeno está perfectamente acuñado por Akerlof (1970) como “Los mercados de los
limones”. En este marco, los limones se consideran de baja calidad.
Considere un mercado con limón y automóviles de alta calidad y los compradores saben que es
probable que compren un limón, lo que reduce el precio de equilibrio. Sin embargo, el vendedor
estará mejor informado si el coche es limón o de alta calidad. Entonces, en esta situación,
el beneficio del intercambio podría desaparecer y no se realizará ninguna transacción.
U(x) = miγx
NOTA
La función de utilidad es una herramienta que se utiliza para representar las preferencias de los consumidores por bienes y
servicios y es cóncava para personas con aversión al riesgo.
Machine Translated by Google
Para practicar, asumo que el ingreso es de $2 USD y el costo del accidente es de $1,5
USD.
Como último paso, para encontrar el equilibrio, tengo que definir la oferta y la
demanda de cobertura de seguro. El siguiente bloque de código indica cómo podemos
modelar la selección adversa.
En [12]: pi = np.random.uniform(0,1,20) pi =
np.sort(pi)
En [14]: y = 2 c
= 1,5 Q
=5D
= 0,01
gamma = 0,4
En [17]: plt.figura()
plt.plot([demanda(i) para i en np.arange(0, 1.9, 0.02)], np.arange(0, 1.9,
0,02),
'r', etiqueta = 'demanda de seguro')
plt.plot(rango(1,21), [suministro(j) para j en rango(1,21)],
Machine Translated by Google
La figura 12 muestra la curva de oferta y demanda de seguros. Sorprendentemente, ambas curvas
tienen pendiente descendente, lo que implica que a medida que más personas exigen el contrato y
más personas se agregan al contrato, el riesgo que afecta el precio del contrato de seguro disminuye.
La línea recta presenta la oferta de seguro y el costo promedio del contrato y la línea, que muestra una
pendiente descendente gradual, denota la demanda de contratos de seguro. A medida que comenzamos
el análisis con los clientes de riesgo, a medida que se pueden agregar más y más personas al contrato, el
nivel de riesgo disminuye en paralelo con el costo promedio.
Machine Translated by Google
Riesgo moral
Las fallas del mercado también son el resultado de información asimétrica. En una
situación de riesgo moral, una de las partes del contrato asume más riesgo que la otra.
Formalmente, el riesgo moral puede definirse como una situación en la que
una parte más informada se aprovecha de la información privada a su disposición en
detrimento de otros.
Para comprender mejor el riesgo moral, se puede dar un ejemplo sencillo del mercado
crediticio: supongamos que la entidad A exige crédito para utilizarlo en la
financiación del proyecto, que se considera factible de financiar. El riesgo moral
surge si la entidad A utiliza el préstamo para el pago de la deuda crediticia al banco
C, sin previo aviso al banco prestamista. Al asignar crédito, la situación de riesgo moral
que pueden encontrar los bancos surge como resultado de la información
asimétrica, disminuye el apetito crediticio de los bancos y aparece como una de las
razones por las que los bancos ponen tanto trabajo en el proceso de asignación de crédito.
Machine Translated by Google
Algunos argumentan que la operación de rescate emprendida por la FED para LCTM
puede considerarse un riesgo moral en el sentido de que la FED celebra contratos de
mala fe.
Conclusión
Este capítulo presenta los principales conceptos de la gestión de riesgos financieros con el
fin de garantizar que todos estemos en la misma página. Este repaso nos ayuda mucho a lo
largo de este libro porque utilizamos estos términos y conceptos.
Además de eso, en la última parte del primer capítulo se analiza un enfoque conductual,
que ataca la lógica de un agente financiero, de modo que tengamos herramientas más
amplias para dar cuenta de las fuentes de riesgo financiero.
Recursos adicionales
Artículos citados en este capítulo:
Akerlof, George A. "El mercado de los" limones ": incertidumbre sobre la calidad
y el mecanismo del mercado". En Incertidumbre en economía, págs. 235251.
Academic Press, 1978.
1 El término huida hacia la calidad se refiere a un comportamiento gregario mediante el cual los inversores se mantienen alejados de activos
riesgosos, como las acciones, y toman posiciones largas en activos más seguros, como los bonos emitidos por el gobierno.
Machine Translated by Google
Con los libros electrónicos de lanzamiento anticipado, obtiene libros en su forma más antigua (el
contenido sin editar y sin editar del autor mientras escribe) para que pueda aprovechar estas
tecnologías mucho antes del lanzamiento oficial de estos títulos.
Este será el segundo capítulo del libro final. Tenga en cuenta que el repositorio de GitHub se
activará más adelante.
El comportamiento del mercado se examina utilizando grandes cantidades de datos pasados, como
cotizaciones de divisas o precios de acciones de alta frecuencia. Es la abundancia de datos lo que hace
posible el estudio empírico del mercado. Aunque no es posible realizar experimentos controlados, es
posible realizar pruebas exhaustivas con datos históricos.
Henri Poincaré
Algunos modelos explican mejor algunos fenómenos, ciertos enfoques capturan las características de un
evento de manera sólida. El modelado de series de tiempo es un claro ejemplo de esto porque
la gran mayoría de los datos financieros tienen una dimensión temporal, lo que hace que las
aplicaciones de series de tiempo sean una herramienta necesaria para las finanzas. En términos
simples, el orden de los datos y la correlación entre ellos es importante.
En este capítulo del libro, se analizarán los modelos clásicos de series de tiempo y se comparará el
rendimiento de estos modelos. Además de eso, el análisis de series de tiempo basado en aprendizaje
profundo se introducirá en [Link to Come], que tiene un enfoque completamente diferente en términos
de preparación de datos y estructura del modelo. Los modelos clásicos que se visitarán incluyen el
modelo de media móvil (MA), el modelo autorregresivo (AR) y, finalmente, el modelo de
media móvil integrada autorregresiva.
Machine Translated by Google
modelo (ARIMA). Lo que es común entre estos modelos es la información contenida en las
observaciones históricas. Si estas observaciones históricas se obtienen a partir de términos
de error, se denomina media móvil; si estas observaciones provienen de la propia serie
temporal, resulta ser autorregresiva. El otro modelo, ARIMA, es una extensión de estos modelos.
Una serie de tiempo es un conjunto de observacionesXt , cada una de las cuales se registra
en un tiempo específico t. Una serie de tiempo discreta (el tipo al que está dedicado
principalmente este libro) es aquella en la que el conjunto T0 de tiempos en los que se realizan las
observaciones es un conjunto discreto, como es el caso, por ejemplo, cuando las observaciones
se realizan en tiempos fijos. intervalos de tiempo. Las series de tiempo continuas se obtienen
cuando las observaciones se registran continuamente durante algún intervalo de tiempo.
Observemos cómo se ven los datos con dimensión temporal. La Figura 21 muestra los precios del
petróleo para el período 19802020 y el siguiente código Python nos muestra una forma de producir
este gráfico.
NOTA
Una API, o interfaz de programación de aplicaciones, es una herramienta diseñada para recuperar datos mediante código.
Usaremos diferentes API a lo largo del libro. En la práctica anterior, se utiliza la API de Quandl .
La API de Quandl nos permite acceder a datos financieros, económicos y alternativos desde el sitio web de Quandl .
Para tener su API de Qnadl, visite el sitio web de Quanld Primero y obtenga su propia clave API siguiendo los pasos
necesarios.
Cuidado de la salud
Finanzas
Ciencias económicas
Análisis de red
Machine Translated by Google
Astronomía
Clima
La superioridad del enfoque de series de tiempo proviene de la idea de que la correlación de las
observaciones en el tiempo explica mejor el valor actual. Tener datos con una estructura
correlacionada en el tiempo implica una violación de la famosa distribución idéntica e
independiente, para abreviar el supuesto IID, que está en el corazón de muchos modelos.
LA DEFINICIÓN DE IID
El supuesto IID nos permite modelar la probabilidad conjunta de los datos como el producto
de la probabilidad de las observaciones. Se dice que el proceso Xt es un IID con media 0 2 y
varianza σ :
Xt IID(0, σ 2)
[*********************100%************************] 1 de 1 completado
En el panel superior de la Figura 22, vemos el gráfico de datos sin procesar y en el segundo panel se
puede observar la tendencia que muestra un movimiento ascendente. En el tercer panel se exhibe
la estacionalidad y finalmente se presenta el residual exhibiendo fluctuaciones erráticas. Quizás se
pregunte dónde está el componente cíclico: el ruido y el componente cíclico se juntan en el
componente residual.
Familiarizarse con los componentes de las series temporales es importante para realizar análisis
posteriores, de modo que podamos comprender las características de los datos y proponer una solución adecuada.
Machine Translated by Google
Tendencia
Tendencia indica una tendencia general de aumento o disminución durante un período de tiempo determinado. En
términos generales, la tendencia está presente cuando los puntos inicial y final son diferentes o tienen una
pendiente ascendente o descendente en una serie de tiempo.
Aparte del período en el que el precio del índice S&P500 se desploma, vemos una clara tendencia alcista
en la Figura 23 entre 2010 y 2020.
Trazar un diagrama de líneas no es la mera opción utilizada para comprender la tendencia. Más
bien tenemos alguna otra herramienta poderosa para esta tarea. Entonces, llegados a este punto, vale
la pena hablar de dos conceptos estadísticos importantes:
Función de autocorrelación
Cov(Xt, Xt−h)
ρˆ(h) =
Var(Xt)
La Figura 24 muestra el gráfico de la función de autocorrelación. Las líneas verticales que se
muestran en la Figura 24 representan los coeficientes de correlación, la primera línea denota
la correlación de la serie con su rezago 0, es decir, es la correlación consigo misma. La segunda
línea indica la correlación entre el valor de la serie en el momento t1 y t. A la luz de esto, podemos
concluir que el S&P500 muestra una dependencia serial. Parece haber una fuerte dependencia
entre el valor actual y los valores rezagados de los datos del S&P500 porque los coeficientes de
correlación, representados por líneas en el gráfico ACF, decaen lentamente.
En [8]: sm.graphics.tsa.plot_acf(SP_prices,lags=30)
plt.xlabel('Número de retrasos')
plt.savefig('images/acf_SP.png')
plt.show()
PACF proporciona información sobre la correlación entre el valor actual de una serie de
tiempo y sus valores rezagados controlando las otras correlaciones.
Machine Translated by Google
No es fácil entender lo que está pasando a primera vista. Dejame darte un ejemplo. Supongamos
que queremos calcular la correlación parcial Xt y Xt−h.
Para ello, tengo en cuenta la estructura de correlación entre Xt y Xt−1 y Xt−2.
Dicho matemáticamente:
Cov(Xt,Xt−h|Xt−1,Xt−2...Xt−h−1)
ρˆ(h) =
√Var(Xt|Xt−1,Xt−2,...,Xt−h−1)Var(Xt −h|Xt−1,Xt−2,...,Xt−h−1)
donde h es el retraso.
La Figura 25 muestra el PACF de los datos brutos del S&P500. Al interpretar el PACF, nos centramos
en los picos fuera de la región oscura que representan el intervalo de confianza.
La Figura 25 muestra algunos picos en diferentes rezagos, pero el rezago 16 está fuera del
intervalo de confianza. Por lo tanto, puede ser prudente seleccionar un modelo con 16 rezagos para
poder incluir todos los rezagos hasta el rezago 16.
Machine Translated by Google
Como se analizó, PACF mide la correlación entre los valores actuales de la serie y los valores
rezagados de la misma de una manera para aislar los efectos intermedios.
Estacionalidad La
estacionalidad existe si hay fluctuaciones regulares durante un período de tiempo determinado. Por
ejemplo, los usos de energía pueden mostrar características estacionales. Para ser más específicos,
el consumo de energía sube y baja en determinados períodos a lo largo de un año.
Para mostrar cómo podemos detectar el componente estacional, utilicemos la base de datos
FRED, que incluye más de 500.000 series de datos económicos de más de 80 fuentes que cubren
temas e información relacionados con muchas áreas como la banca, el empleo, los tipos
de cambio, el producto interno bruto y las tasas de interés. , comercio y transacciones
internacionales, etc.
observación_end="20201231")
energía.cabeza(12)
Fuera[12]: 20100101 83.7028
20100201 84.9324
20100301 82.0379
20100401 79.5073
20100501 82.8055
20100601 84.4108
20100701 83.6338
20100801 83.7961
20100901 83.7459
20101001 80.8892
20101101 81.7758
20101201 85.9894
tipo de letra: float64
En [13]: plt.plot(energía)
plt.title(' Utilización de la capacidad energética')
plt.ylabel('$')
plt.xlabel('Fecha')
plt.savefig('imágenes/energía.png')
plt.mostrar()
En [14]: sm.graphics.tsa.plot_acf(energía,lags=30)
plt.xlabel('Número de retrasos')
plt.savefig('images/energy_acf.png')
plt.mostrar()
Acceder a la utilización de la capacidad de energía desde la base de datos de Fred durante el período de
20102020.
La Figura 26 indica altibajos periódicos durante un período de casi 10 años en cuanto a
tienen una alta utilización de la capacidad en los primeros meses de cada año y luego disminuyen
hacia finales de año confirmando que existe una estacionalidad en la capacidad energética
utilización.
Machine Translated by Google
Ciclicidad ¿Qué
pasa si los datos no muestran movimientos de período fijo? En este punto, el carácter
cíclico entra en escena. Existe cuando surge una variación periódica mayor que la
tendencia. Algunos confunden ciclicidad y estacionalidad en el sentido de que ambos exhiben
expansión y contracción. Sin embargo, podemos pensar en el carácter cíclico como
ciclos económicos, que tardan mucho en completar su ciclo y los altibajos a lo largo de un
largo horizonte. Por tanto, el carácter cíclico se diferencia de la estacionalidad en el sentido
de que no hay fluctuaciones en un período fijo. Un ejemplo de carácter cíclico pueden ser
las compras (o ventas) de viviendas en función del tipo hipotecario. Es decir, cuando se reduce
(o aumenta) la tasa hipotecaria, se genera un impulso para la compra (o venta) de viviendas.
Residual
El residual se conoce como componente irregular de una serie temporal. Técnicamente hablando, el
residual es igual a la diferencia entre las observaciones y los valores ajustados relacionados.
Entonces, podemos considerarlo como un sobrante del modelo.
Como hemos comentado antes, los modelos de series de tiempo carecen de algunos supuestos
básicos, pero eso no significa necesariamente que los modelos de series de tiempo
estén libres de supuestos. Me gustaría destacar el más destacado, que se llama estacionariedad.
En palabras, las series de tiempo deben tener una varianza finita con una media constante y
una estructura de covarianza que sea función de la diferencia temporal.
Machine Translated by Google
Primero, en el proceso de estimación es esencial tener cierta distribución a medida que pasa el tiempo. En otras
palabras, si la distribución de una serie temporal cambia con el tiempo, se vuelve impredecible y no se puede
modelar.
El objetivo final de los modelos de series temporales es la previsión. Para ello primero debemos estimar los
Una vez que aprendemos y realizamos un análisis de pronóstico, asumimos que la distribución de los datos en la estimación
permanece igual de manera que tenemos los mismos coeficientes estimados. Si este no es el caso, deberíamos
volver a estimar los coeficientes porque no podemos pronosticar con los coeficientes estimados anteriormente.
Tener un quiebre estructural como una crisis financiera genera un cambio en la distribución.
La otra razón para tener datos de estacionariedad es que, por supuesto, algunos modelos estadísticos requieren
datos de estacionariedad, pero eso no significa que algunos modelos solo requieran datos estacionarios. En cambio,
todos los modelos requieren estacionarios, pero si alimenta el modelo con datos no estacionarios, algunos modelos,
por diseño, lo convierten en estacionario y lo procesan. Las funciones integradas en Python facilitan este análisis de la
siguiente manera:
Impresión de la estadística de prueba de los primeros cuatro decimales y el valor p de la prueba ADF
La Figura 24 a continuación muestra los retrasos que disminuyen lentamente hasta llegar a ser no estacionarios
porque continúa la persistencia de la alta correlación entre los retrasos de las series temporales.
Machine Translated by Google
Existen, en general, dos formas de entender la no estacionariedad: visualización y método estadístico. Este último, por
supuesto, tiene una forma mejor y más sólida de detectar la no estacionariedad. Sin embargo, para mejorar nuestra
comprensión, comencemos con el ACF. El ACF de lenta decadencia implica que los datos no son estacionarios
porque presentan una fuerte correlación en el tiempo. Eso es lo que observo en los datos del S&P500.
La forma estadística de detectar la no estacionariedad es más confiable y la prueba ADF es una prueba ampliamente
apreciada. Según el resultado de la prueba anterior, el valor p de 0,99 sugiere que los datos no son estacionarios, algo
Tomar diferencias es una técnica eficaz para eliminar la estacionariedad. Tomar la diferencia no es más que
restar el valor actual de la serie de su primer valor rezagado, es decir, xt − xt−1 y el siguiente código de Python
Después de tomar la primera diferencia, volvemos a ejecutar la prueba del ADF para ver si funcionó y sí, funciona. El
bajísimo valor p del ADF me dice que los datos del S&P500 están estacionarios ahora.
Machine Translated by Google
Esto se puede observar en el gráfico de líneas que se proporciona a continuación. A diferencia del
gráfico bruto del S&P500, la Figura 28 muestra fluctuaciones alrededor de la media con volatilidad similar
lo que significa que tenemos una serie estacionaria.
En [22]: temporada_energía = []
para i,s en zip(range(0, len(energy), 3), range(len(seasonal_index))):
deseason_energy.append(concat_deseasonalized[i:i+3] /
season_index.iloc[s])
concat_deseason_energy = np.concatenate(deseason_energy)
deseason_energy = pd.DataFrame(concat_deseason_energy, index=energy.index)
deseason_energy.columns = ['Energía desaestacionalizada']
deseason_energy.head()
Fuera[22]: Energía Desestacionalizada
20100101 1.001737
20100201 1.016452
20100301 0.981811
20100401 0,966758
20100501 1,006862
La Figura 210 sugiere que existe una correlación estadísticamente significativa en los desfases 1 y 2, pero
el ACF no muestra ninguna característica periódica, que es otra forma de decir desestacionalización.
Machine Translated by Google
De manera similar, en la Figura 211, aunque tenemos picos en algunos retrasos, el PACF no
muestra altibajos periódicos. Entonces, podemos decir que los datos están desestacionalizados
utilizando la fórmula del índice estacional.
Machine Translated by Google
Finalmente, estamos listos para avanzar y discutir los modelos de series temporales.
Identificación: en este proceso, exploramos los datos utilizando ACF, PACF, patrón de
identificación y realización de pruebas estadísticas.
Diagnóstico: Una vez estimada, debemos comprobar si los criterios de información o ACF/
PACF sugieren que el modelo es válido. Si es así, pasamos a la etapa de previsión.
Machine Translated by Google
Pronóstico: esta parte trata más sobre el rendimiento del modelo. Al pronosticar,
predecimos valores futuros basados en nuestra estimación.
Recuerde la discusión sobre el proceso IID, que es el modelo de series de tiempo más básico
y a veces se lo denomina ruido blanco. Toquemos el concepto de ruido blanco.
Machine Translated by Google
Ruido blanco
2
t WN(0, σ )
Corr( t, s) = 0, t≠s
Bueno, es fácil decir que el proceso de ruido blanco es estacionario y el gráfico de ruido blanco
presenta fluctuaciones alrededor de la media de forma aleatoria en el tiempo.
Sin embargo, como el ruido blanco está formado por una secuencia no correlacionada, no es
un modelo atractivo desde el punto de vista de la previsión. De otra manera, la falta de correlación
nos impide pronosticar valores futuros.
Como podemos observar en la Figura 213 a continuación, el ruido blanco oscila alrededor de la
media y es completamente errático.
En [25]: mu = 0
estándar
= 1 WN = np.random.normal(mu, estándar, 1000)
plt.plot(WN)
plt.xlabel('Número de simulación')
plt.savefig('images/WN.png')
plt.show()
Machine Translated by Google
CRITERIOS DE INFORMACIÓN
Detectar el número óptimo de retraso es una tarea engorrosa. Necesitamos tener un criterio
para decidir qué modelo se ajusta mejor a los datos, ya que puede haber numerosos
modelos potencialmente buenos. Akaike Information Criteria, también conocido
como AIC, como indican Cavanaugh y Neath (2019) que
BIC es el otro criterio de información utilizado para seleccionar el mejor modelo. El plazo
de sanción en BIC es mayor que el de AIC.
Tenga en cuenta que debe tratar el AIC con precaución si el modelo propuesto es de
dimensiones finitas. Este hecho está bien expresado por Clifford y Hurvich (1989):
Si el modelo verdadero es de dimensión infinita, caso que parece más realista en la práctica,
AIC proporciona una selección asintóticamente eficiente de un modelo aproximado de
dimensión finita. Sin embargo, si el verdadero modelo es de dimensión finita, los métodos
asintóticamente eficientes, por ejemplo, el FPE de Akaike (Akaike, 1970), el AIC y el CAT
de Parzen (Parzen, 1977), no proporcionan selecciones consistentes del orden del
modelo.
Comencemos a visitar el modelo clásico de series de tiempo con el modelo de media móvil.
La media móvil (MA) y los residuos son modelos estrechamente relacionados. La media móvil puede
considerarse un modelo de suavizado, ya que tiende a tener en cuenta los valores de rezago
del residual. En aras de la simplicidad, comencemos con MA(1):
Xt = t+α t−1
Mientras α ≠ 0, tiene una estructura de correlación no trivial. Intuitivamente, MA(1) nos dice que la
serie temporal ha sido afectada por ty t−1 únicamente.
A partir de este momento, para ser coherentes, modelaremos los datos de dos importantes
empresas de TI, a saber, Apple y Microsoft. Yahoo Finance proporciona una herramienta
conveniente para acceder al precio de cierre de las acciones relacionadas para el período 01012019
y 01012021.
Como primer paso, eliminamos los valores faltantes y comprobamos si los datos son estacionarios
y resulta que ni los precios de las acciones de Apple ni de Microsoft tienen una estructura estacionaria
como se esperaba. Por lo tanto, los pasos a seguir en este punto son tomar la primera
diferencia para hacer que estos datos sean estacionarios y dividirlos como tren y prueba . El
siguiente código nos muestra cómo podemos hacer esto en Python.
En [31]: diff_train_aapl.to_csv('diff_train_aapl.csv')
diff_test_aapl.to_csv('diff_test_aapl.csv')
diff_train_msft.to_csv('diff_train_msft.csv')
diff_test_msft.to_csv('diff_test_msft.cs v')
plt.savefig('images/acf_ma.png') plt.mostrar()
Asignar el 95% de los datos del precio de las acciones de Apple al conjunto de trenes.
Asignar el 5% de los datos del precio de las acciones de Apple al conjunto de prueba.
Asignar el 95% de los datos del precio de las acciones de Microsoft al conjunto de trenes.
Asignar el 5% de los datos del precio de las acciones de Microsoft al conjunto de prueba.
Al observar el primer panel de la Figura 214, se puede observar que hay picos significativos en algunos
rezagos y, para estar seguros, elegimos el rezago 9 para el modelo de promedio móvil corto y 22 para el modelo
de promedio móvil largo. Esto implica que el orden 9 será nuestro orden a corto plazo y 22 se convertirá en nuestro
La Figura 215 muestra el resultado del modelo de promedio móvil a corto plazo en color verde y
el resultado del modelo de promedio móvil a largo plazo en color rojo. Como era de esperar,
resulta que la media móvil a corto plazo tiende a reaccionar más a los cambios diarios en el
precio de las acciones de Apple en comparación con la media móvil a largo plazo. Tiene
sentido porque tener en cuenta una media móvil larga genera una predicción fluida.
Figura 215. Resultado de predicción del modelo de media móvil para Apple
De manera similar, las predicciones basadas en el análisis de media móvil corta tienden a
ser más reactivas que las del modelo de media móvil larga de la Figura 216. Pero,
en el caso de Microsoft, la predicción del promedio móvil a corto plazo parece estar muy
cerca de los datos reales.
Machine Translated by Google
Figura 216. Resultado de predicción del modelo de media móvil para Microsoft
donde t denota los residuos y c es el término intercetato. El modelo AR(p) implica que los
valores pasados hasta el orden p tienen cierto poder explicativo sobre Xt . Si la
relación tiene memoria más corta, entonces es probable que modele Xt con menos rezagos.
Hemos discutido una de las principales propiedades de las series de tiempo, que es
la estacionariedad , y la otra propiedad importante es la invertibilidad. Después de presentar
Machine Translated by Google
Modelo AR, es hora de mostrar la invertibilidad del proceso MA. Se dice que es invertible si se puede
convertir a un modelo AR infinito.
Xt = t+α t−1
= t + α(Xt−1 − α t−2)
= t + αXt−1 − α 2 t−2
= t + αXt−1 − α 2Xt−2 + α 3
t−3)
= ...
t−n
norte1
2
norte1
2n 2
∑ ) = mi(α t−n → ∞)
mi( t− yo=0 αiXt −i)
t= ∑ αiXt −i
yo=0
Debido a la dualidad entre los procesos AR y MA, es posible representar AR(1) como MA infinita,
MA(∞). En otras palabras, el proceso AR(1) puede ser
Machine Translated by Google
Xt = t + θXt−1
= θ(θXt−2 + t−1) + t
= θ 2Xt−2 + θ t−1 + t
Como n → ∞, θ t
→ 0, por lo que puedo representar AR(1) como un proceso MA infinito.
En el siguiente análisis, ejecutamos un modelo autorregresivo para predecir los precios de las
acciones de Apple y Microsoft. A diferencia de la media móvil, la función de autocorrelación parcial es
una herramienta útil para encontrar el orden óptimo en un modelo autorregresivo. Esto se
debe a que, en AR, nuestro objetivo es descubrir la relación de una serie de tiempo entre dos
tiempos diferentes, digamos Xt y Xtk , y para hacerlo necesito filtrar el efecto de otros retrasos
intermedios.
En [37]: sm.graphics.tsa.plot_pacf(diff_train_aapl,lags=30)
plt.title('PACF de Apple')
plt.xlabel('Número de retrasos')
plt.savefig('images/pacf_ar_aapl.png' )
plt.mostrar()
En [38]: sm.graphics.tsa.plot_pacf(diff_train_msft,lags=30)
plt.title('PACF de Microsoft')
plt.xlabel('Número de retrasos')
plt.savefig('images/pacf_ar_msft.png')
plt.show()
Con base en la Figura 217, obtenida de la primera diferencia del precio de las acciones de Apple,
observamos un pico significativo en el rezago 29 y la Figura 218 muestra que tenemos un pico
similar en el rezago 23. Por lo tanto, 29 y 23 son los rezagos que Voy a utilizarlo en el modelado
de AR para Apple y Microsoft, respectivamente.
Machine Translated by Google
diff_test_aapl[yo]))
====================================================
valores previstos: 1,9207 y valores reales: 1,3200
====================================================
valores previstos: 0,6051 y valores reales: 0,8600
====================================================
valores previstos: 0,5332 y valores reales: 0,5600
====================================================
valores previstos: 1,2686 y valores reales: 2,4600
====================================================
valores previstos: 0,0181 y valores reales: 3,6700
====================================================
valores previstos: 1,8889 y valores reales: 0,3600
====================================================
valores previstos: 0,6382 y valores reales: 0,1400
====================================================
valores previstos: 1,7444 y valores reales: 0,6900
====================================================
valores previstos: 1,2651 y valores reales: 1,5000
====================================================
valores previstos: 1,6208 y valores reales: 0,6300
====================================================
valores previstos: 0,4115 y valores reales: 2,6000
====================================================
valores previstos: 0,7251 y valores reales: 1,4600
====================================================
valores previstos: 0,4113 y valores reales: 0,8300
====================================================
valores previstos: 0,9463 y valores reales: 0,6300
====================================================
valores previstos: 0,7367 y valores reales: 6,1000
====================================================
valores previstos: 0,0542 y valores reales: 0,0700
====================================================
Machine Translated by Google
plt.mostrar()
La Figura 219 indica las predicciones basadas en el modelo AR. Las líneas rojas representan las predicciones del precio de
las acciones de Apple y Microsoft y las líneas azules indican los datos reales.
El resultado revela que el modelo AR es superado por el modelo MA en la captura del precio de las acciones.
Machine Translated by Google
integrada autorregresiva, ARIMA para abreviar, es una función de los valores pasados de
una serie temporal y el ruido blanco. Sin embargo, ARIMA se propone como una
generalización de AR y MA, pero no tienen parámetros de integración, lo que nos ayuda
a alimentar el modelo con los datos sin procesar. A este respecto, incluso si incluimos
datos no estacionarios, ARIMA los vuelve estacionarios al definir adecuadamente el
parámetro de integración.
ARIMA tiene tres parámetros, a saber, p, d, q. Como sabemos por los modelos de series temporales
anteriores, p y q se refieren al orden de AR y MA, respectivamente. Pero d controla la diferencia de
nivel. Si d=1, equivale a primera diferencia y si toma el valor de 0, significa que el modelo es ARMA.
Es posible tener d mayor que uno pero no es tan común como tener d de 1.
La ecuación ARIMA (p,1,q) tiene la siguiente estructura:
Como es un modelo ampliamente adoptado y aplicable, analicemos los pros y los contras del modelo ARIMA
para familiarizarnos más con el modelo.
Ventajas
ARIMA nos permite trabajar con datos sin procesar sin considerar si son estacionarios.
Contras
Funciona mejor con series largas y datos a corto plazo (diarios, horarios).
Ahora, mostraremos cómo funciona y se desempeña ARIMA utilizando las mismas acciones, es decir, Apple y
Microsoft.
Ante esta conjetura, vale la pena discutir el método alternativo para la selección de
rezagos óptimos para modelos de series de tiempo. AIC es el método que aplico aquí
para seleccionar el número adecuado de retrasos. Tenga en cuenta que, aunque el
resultado del AIC sugiere (4, 0, 4), el modelo no converge con este orden. Entonces, en
su lugar se aplica (4, 1, 4).
En [56]: p = q = rango(0, 9) d =
rango(0, 3) pdq
= list(itertools.product(p, d, q))
arima_results_aapl = []
para param_set en pdq:
.format(pd.DataFrame(arima_results_aapl) .where(pd.DataFrame(arima_results_aapl).T.notnull().all()).m
[0],
pdq[arima_results_aapl.index(min(arima_results_aapl))]))
**************************************************
La puntuación AIC más baja es 1951,9810 y los parámetros correspondientes son
(4, 0, 4)
En [58]: p = q = rango(0, 6) d =
rango(0, 3) pdq
= list(itertools.product(p, d, q))
arima_results_msft = []
para param_set en pdq:
.format(pd.DataFrame(arima_results_msft) .where(pd.DataFrame(arima_results_msft).T.notnull().all()).m
[0],
Machine Translated by Google
pdq[arima_results_msft.index(min(arima_results_msft))]))
**************************************************
La puntuación AIC más baja es 2640,6367 y los parámetros correspondientes son
(4, 2, 4)
Configuración del modelo ARIMA para que se ajuste a los datos de Apple.
Ejecutando el modelo ARIMA con todos los retrasos posibles para los datos de Microsoft.
Adaptación del modelo ARIMA a los datos de Microsoft con pedidos óptimos.
Machine Translated by Google
Los pedidos identificados para Apple y Microsoft son (4, 1, 4) y (4, 2, 4), respectivamente.
ARIMA hace un buen trabajo al predecir los precios de las acciones. Sin embargo, tenga en cuenta que una
identificación inadecuada de las órdenes da como resultado un ajuste deficiente y esto, a su vez,
produce predicciones que están lejos de ser satisfactorias.
Machine Translated by Google
Conclusión
El análisis de series de tiempo tiene un papel central en el análisis financiero. Es simplemente
porque la mayoría de los datos financieros tienen una dimensión temporal y este tipo de
datos deben modelarse con cautela. Por lo tanto, este capítulo es el primer intento de modelar
datos con dimensión temporal y para ello hemos empleado el modelo clásico de series de
tiempo, es decir, la media móvil, el modelo autorregresivo y, finalmente, la media móvil
integrada autorregresiva. ¿Crees que esa es toda la historia? ¡Absolutamente no! En el
próximo capítulo, veremos cómo se puede modelar una serie de tiempo utilizando modelos de
aprendizaje profundo.
Recursos adicionales
Artículo citado en este capítulo:
de series temporales
Con los libros electrónicos de lanzamiento anticipado, obtiene libros en su forma más
antigua (el contenido sin editar y sin editar del autor mientras escribe) para que pueda
aprovechar estas tecnologías mucho antes del lanzamiento oficial de estos títulos.
Este será el tercer capítulo del libro final. Tenga en cuenta que el repositorio de GitHub se
activará más adelante.
... Sí, es cierto que una máquina de Turing puede calcular cualquier función computable
con suficiente memoria y suficiente tiempo, pero la naturaleza tenía que resolver los problemas
en tiempo real. Para ello, utilizó las redes neuronales del cerebro que, como los
ordenadores más potentes del planeta, cuentan con procesadores masivamente paralelos.
Los algoritmos que se ejecuten eficientemente con ellos acabarán ganando.
A diferencia de las redes neuronales, el aprendizaje profundo tiene una estructura más compleja
y las capas ocultas definen la complejidad. Por lo tanto, algunos investigadores utilizan
Machine Translated by Google
El número de capas ocultas como punto de referencia de comparación para distinguir la red neuronal y el
aprendizaje profundo es una forma útil pero no rigurosa de hacer esta separación. Entonces, una definición
Los métodos de aprendizaje profundo son aprendizaje de representación. Nota al pie: [El
aprendizaje de representación nos ayuda a definir un concepto de una manera única.
Por ejemplo, si la tarea es detectar si es un círculo o no, entonces los bordes juegan un papel clave
ya que el círculo no tiene bordes. Entonces, usando el color, la forma y el tamaño, podemos crear una
representación de un objeto. En esencia, así es como funciona el cerebro humano y sabemos que
la estructura de aprendizaje profundo se inspira en su funcionamiento.] métodos con múltiples niveles
de representación, obtenidos componiendo módulos simples pero no lineales, cada uno
de los cuales transforma la representación en un nivel (comenzando con la entrada sin procesar) en
una representación en un nivel superior, ligeramente más abstracto.
Las aplicaciones del aprendizaje profundo se remontan a la década de 1940, en la que se publica la
cibernética y luego el pensamiento conectivista domina los años entre los años 1980 y 1990. Finalmente, el
neuronales, ha creado el campo que conocemos como aprendizaje profundo. Bueno, básicamente
estamos hablando de tres oleadas de aprendizaje profundo y ahora resulta tentador preguntar ¿por
qué el aprendizaje profundo está viviendo su apogeo? Goodfellow et al. (2016) enumeran algunas
Parece que la tecnología moderna y la disponibilidad de datos allanan el camino para una era de aprendizaje
profundo en la que se proponen nuevos métodos basados en datos para que podamos modelar series
temporales utilizando modelos no convencionales. Este desarrollo ha dado lugar a una nueva ola de Deep
Learning. En Deep Learning destacan dos métodos por su capacidad de incluir períodos de tiempo más largos:
RNN y LSTM son dos de ellos. En esta parte, nos concentraremos en la practicidad de estos modelos
en Python después de discutir brevemente los antecedentes teóricos.
Uno a uno: consta de una única entrada y una única salida, lo que lo convierte en el tipo
más básico de RNN.
Uno a muchos: de esta forma, RNN produce múltiples salidas para una sola entrada.
Muchos a uno: a diferencia de la estructura Uno a muchos, Muchos a uno tiene múltiples
entradas para una sola salida.
Muchos a muchos: tiene múltiples salidas y entradas y se conoce como la estructura más
complicada de RNN.
La unidad oculta en RNN se retroalimenta a sí misma en la red neuronal, de modo que RNN tiene, a
provienen de un paso de tiempo anterior, lo que indica que RNN representa el estado de acumulación
de la instancia de red (Buduma, 2017).
Estas dimensiones se ilustran en la Figura 31. Como se puede ver fácilmente, la estructura RNN en el lado derecho
tiene un paso de tiempo, que es la principal diferencia con la red de alimentación directa.
Pasos de tiempo
Número de característica
Los pasos de tiempo son la cantidad de veces que se alimenta el modelo. Finalmente, número de
Machine Translated by Google
En [2]: n_pasos = 13
n_características = 1
Agregando una capa oculta más con 256 neuronas con función de activación
relu .
La Figura 32 indica los resultados de la predicción del precio de las acciones de
Apple y Microsoft. Aunque el resultado de la predicción parece correcto, no captura los
valores extremos.
Machine Translated by Google
Machine Translated by Google
Incluso si podemos tener un rendimiento predictivo satisfactorio, no deben pasarse por alto las
desventajas del modelo RNN. Los principales inconvenientes del modelo.
son:
Entrenar un RNN es una tarea muy difícil ya que requiere una cantidad considerable de
datos.
RNN no puede procesar secuencias muy largas cuando se utiliza la función de activación
tanh .
NOTA
La desaparición del gradiente es un problema común en el aprendizaje profundo y no está diseñado adecuadamente.
El problema del gradiente de desaparición surge si el gradiente tiende a reducirse a medida que realizamos la
retropropagación. Implica que las neuronas aprenden tan lentamente que la optimización se detiene.
A diferencia del problema del gradiente que desaparece, el problema del gradiente explosivo se produce cuando pequeños
cambios en la retropropagación dan como resultado grandes actualizaciones en los pesos durante el proceso de optimización.
Machine Translated by Google
FUNCIONES DE ACTIVACIÓN
1
sigmoide(x) =
1 + exp(−∑i wixi − b)
sinh(x)
tanh(x) =
cosh(x)
f(x) = wx
Machine Translated by Google
ReLu(x) = máx(0, x)
Softmax: es ampliamente aplicable a problemas de clasificación como en
sigmoide porque softmax convierte la entrada en una distribución
probabilística proporcional al exponencial de los números de
entrada:
exp(xi)
softmax(xi) =
∑i exp(xi)
Las desventajas de RNN están bien expuestas por Haviv et al. (2019) como:
corto plazo, LSTM, por sus siglas en inglés, enfoque de aprendizaje profundo, ha sido
desarrollada por Hochreiter y Schmidhuber (1997) y se basa principalmente en la Unidad
Recurrente Cerrada (GRU).
Consta de dos puertas: Actualizar y restablecer. Cuando se detecta que una observación temprana
es muy importante, no actualizamos el estado oculto. De manera similar, cuando las primeras
observaciones no son significativas, se restablece el estado.
Como comentamos anteriormente, una de las características más atractivas de RNN es su capacidad para
conectar información pasada y presente. Sin embargo, esta capacidad resulta ser un fracaso cuando las
“dependencias a largo plazo” entran en escena. Las dependencias a largo plazo significan que el
modelo aprende de las primeras observaciones.
Los países tienen sus propias monedas como en EE. UU., donde la gente realiza transacciones en dólares.
En el caso de las dependencias cortas, se sabe que la siguiente palabra predicha es sobre una moneda,
pero si se pregunta ¿qué moneda es esa? Entonces, las cosas se complican, ya que podríamos tener
varias monedas en el texto, lo que implica dependencias a largo plazo. Es necesario retroceder mucho
para encontrar algo relevante sobre el país que utiliza el dólar.
LSTM intenta atacar la debilidad de RNN en dependencias a largo plazo de manera que LSTM tenga una
herramienta bastante útil para deshacerse de la información innecesaria para que funcione de
manera más eficiente. LSTM trabaja con puertas, lo que le permite a LSTM olvidar datos
irrelevantes. Estos son:
Puertas de entrada
Puertas de salida
Forget Gates se creó para clasificar la información necesaria e innecesaria para que LSTM funcione de
manera más eficiente que RNN. Al hacerlo, el valor de la función de activación, sigmoidea, se vuelve cero
si la información es irrelevante.
La puerta de olvido se puede formular como:
Ft = σ(XtWI + ht−1Wf + bf )
Machine Translated by Google
It = σ(XtWI + ht−1Wh + bI )
La puerta de salida básicamente determina el alcance de la salida que debe leerse y funciona de
la siguiente manera:
Ot = σ(XtWO + ht−1WO + bI )
Las puertas no son los únicos componentes de LSTM. Los otros componentes son:
Celda de memoria
Estado oculto
Ct = Ft C + t − 1 + It Cˆt
En esta red recurrente, el estado oculto es una herramienta para hacer circular información.
La celda de memoria relaciona la puerta de salida con el estado oculto:
ht = (ct) Ot
Machine Translated by Google
Intentemos predecir el precio de las acciones de Apple y Microsoft utilizando LSTM y veamos
cómo funciona:
En [19]: n_pasos = 13
n_características = 1
NOTA
La idea central de la propagación de la media cuadrática, RMSprop para abreviar, es un método de
optimización en el que calculamos el promedio ponderado de gradientes cuadrados y el
promedio exponencial de los cuadrados de gradientes, el promedio móvil de los gradientes
cuadrados para cada peso. Luego, encuentre la diferencia de peso, que se utilizará para calcular el nuevo peso.
2
vt = ρvt−1 + 1 − ρg t
v
Δpeso = − gt √η +
La Figura 33 muestra los resultados de la predicción y LSTM parece superar al RNN,
en particular al ajustarse a los valores extremos.
Machine Translated by Google
Machine Translated by Google
Conclusión
Este capítulo está dedicado a la predicción del precio de las acciones basada en el aprendizaje profundo.
Los modelos utilizados son RNN y LSTM, que tienen capacidad de procesar períodos de
tiempo más largos. Estos modelos no sugieren una mejora notable, pero aún pueden
emplearse para modelar datos de series de tiempo. LSTM considera, en nuestro caso,
un período retrospectivo de 13 pasos para la predicción. Para una extensión, sería
aconsejable incluir múltiples funciones en los modelos basados en aprendizaje profundo,
lo que no está permitido en los modelos de series de tiempo paramétricos.
Recursos adicionales
Artículos citados en este capítulo:
Con los libros electrónicos de lanzamiento anticipado, obtiene libros en su forma más
antigua (el contenido sin editar y sin editar del autor mientras escribe) para que pueda
aprovechar estas tecnologías mucho antes del lanzamiento oficial de estos títulos.
Este será el cuarto capítulo del libro final. Tenga en cuenta que el repositorio de GitHub se
activará más adelante.
“Algunos conceptos son fáciles de entender pero difíciles de definir. Esto también es válido para
la volatilidad”. Esta podría ser una cita de alguien que vivió antes de Markowitz porque la
forma en que modela la volatilidad es muy clara e intuitiva. Markowitz propone su célebre
teoría de la cartera en la que la volatilidad se define como la desviación estándar, de modo
que a partir de entonces las finanzas se han entrelazado más con las matemáticas.
¿Qué hace que la volatilidad sea tan importante? La respuesta destaca la importancia de la
incertidumbre, que es la principal característica del modelo financiero.
Existe una gran y creciente literatura sobre la estimación de la volatilidad después del
innovador estudio de Black (1976), Raju y Ghosh (2004), Andersen y Bollerslev (1997),
Dokuchaev (2014) y De Stefani et al. (2017). Por lo tanto, estamos hablando de una larga
tradición en la predicción de la volatilidad utilizando modelos de tipo ARCH y GARCH en los
que existen ciertos inconvenientes que pueden causar fallas, por ejemplo, agrupamiento de
volatilidad, asimetría de información, etc. Aunque estos problemas se abordan a través de
modelos diferentes, las recientes fluctuaciones en los mercados financieros, junto con el
desarrollo del aprendizaje automático, hacen que los investigadores reconsideren la
estimación de la volatilidad.
2
(rn μ)
σˆ = √ 1
norte 1 ∑norte
norte=1
Calcular los rendimientos del S&P500 en función de los precios de cierre ajustados.
La Figura 41 muestra la volatilidad observada del S&P500 durante el período 20102021.
Las observaciones más sorprendentes son los picos en torno a la pandemia de Covid19.
Machine Translated by Google
ARCO
GARCIA
GJRGARCH
EGARCH
Machine Translated by Google
Modelo ARCO
Uno de los primeros intentos de modelar la volatilidad fue propuesto por Engel (1982)
y se conoce como modelo ARCH. El modelo ARCH es un modelo univariado y se basa en
los rendimientos históricos de los activos. El modelo ARCH(p) tiene la siguiente forma:
pag
2
2σt
__
= ω+ ∑ αk(rt−k)
k=1
dónde
rt = σt t
donde se supone que t tiene una distribución normal. En este modelo paramétrico,
necesitamos satisfacer algunos supuestos para tener una varianza estrictamente positiva.
A este respecto, se debe cumplir la siguiente condición:
ω>0
ak ≥ 0
Todas estas ecuaciones nos dicen que ARCH es un modelo univariado y no lineal en el que
la volatilidad se estima con el cuadrado de los rendimientos pasados. Una de las
características más distintivas de ARCH es que tiene la propiedad de una varianza
condicional que varía en el tiempo,1por lo que ARCH puede modelar el
fenómeno conocido como agrupación de volatilidad, es decir, los grandes cambios tienden
a ser seguidos por grandes cambios de cualquier signo. , y los pequeños cambios
tienden a ir seguidos de pequeños cambios, como señala Benoit Mandelbrot (1963). Por lo
tanto, una vez que llega un anuncio importante al mercado, puede generar una gran
volatilidad.
Machine Translated by Google
De manera similar a los picos en la volatilidad observada, la Figura 42 sugiere algunos
movimientos importantes y, como era de esperar, estos altibajos ocurren en torno a eventos
importantes como la pandemia de Covid19 a mediados de 2020.
Machine Translated by Google
En [7]: n = 252
split_date = ret.iloc[n:].index
Machine Translated by Google
Fuera[10]: 1453.127184488521
nfev: 62
nits: 33
estado: 0
éxito: Verdadero
x: matriz ([0.70168795, 0.39039044])
Cálculo de logverosimilitud.
Machine Translated by Google
Llamando a la función.
Bueno, modelamos la volatilidad a través de ARCH usando nuestro propio método de optimización y
Ecuación ARCO. ¿Qué tal compararlo con el código Python incorporado? Este
El código incorporado se puede importar desde la biblioteca ARCH y es extremadamente fácil
de aplicar. El resultado del código incorporado se proporciona a continuación y resulta que
Estos dos resultados son muy similares entre sí.
==================================================== =====================
========
Aunque desarrollar nuestro propio código siempre es útil y mejora nuestra comprensión,
la belleza del código integrado no se limita solo a su simplicidad. Encontrar el valor
de retraso óptimo utilizando el código incorporado es otra ventaja junto con el
procedimiento de ejecución optimizado.
Todo lo que necesitamos es crear un bucle for y definir criterios de información adecuados.
A continuación, se eligen los criterios de información bayesianos (BIC) como método de
selección del modelo y para seleccionar el retraso. La razón por la que se elige BIC es
que, siempre que tengamos muestras lo suficientemente grandes, BIC es una
herramienta confiable para la selección de modelos, como lo discuten Burnham y Anderson
(2002 y 2004). Ahora, iteramos el modelo ARCH de 1 a 5 retrasos.
En [16]: bic_arch = []
==================================================== =====================
========
1
Modelo medio
==================================================== =====================
====
error estándar coef t P>|t| 95,0% Conf. En t.
mu 0,0852 1,391e02 6.128 8.877e10 [5.798e02,
0,113]
Modelo de volatilidad
==================================================== =====================
====
error estándar coef t P>|t| 95,0% Conf. En t.
====
plt.savefig('imagenes/arch.png')
plt.show()
Modelo GARCH
El modelo GARCH es una extensión del modelo ARCH que incorpora varianza
condicional rezagada. Por lo tanto, ARCH se mejora agregando p número de varianza
condicional retrasada, lo que hace que el modelo GARCH sea multivariado en el
sentido de que es un modelo de promedio móvil autorregresivo para varianza
condicional con p número de rendimientos cuadrados rezagados y q número de
varianza condicional rezagada. GARCH (p, q) se puede formular como:
q pag
2
2σt
__
= ω+ ∑ t−k 2 + αkr
∑ βkσ tk
k=1 k=1
debe contener:
ω>0
β≥0
α≥0
β+α<1
2σt
__
= ω + αr t1
2 2
+ βσ t1
2 2 2
Luego reemplace σt1 por ω + αr t2 + βσ t2
2
2σt
__
2 = ω + αr t−1 + β(ω + αr 2t−2σ t2)
2 2 22σ
= ω(1 + β) + αr t1 + βαr t2 +β t2)
∞
2σt
__ = ω(1 + β + β 2+. . . ) + α β∑k−1rt−k
k=1
De manera similar al modelo ARCH, hay más de una forma de modelar la volatilidad usando
GARCH en Python. Intentemos desarrollar nuestro propio código basado en Python utilizando
primero la técnica de optimización. A continuación, se utilizará la biblioteca Arch para predecir la
volatilidad.
En [19]: a0 = 0.0001
sgm2 = ret.var()
K = ret.curtosis()
Machine Translated by Google
parámetros = opt_result.x
Machine Translated by Google
Los parámetros que obtenemos de nuestro propio código GARCH son aproximadamente:
ω = 0,0375
α = 0,1724
β = 0,7913
Machine Translated by Google
El siguiente código Python incorporado confirma que hicimos un gran trabajo como
Los parámetros obtenidos a través del código incorporado son casi los mismos que los nuestros. Entonces,
==================================================== =====================
========
==================================================== =====================
======
error estándar coef t P>|t| 95,0% Conf. En t.
======
En [29]: bic_garch = []
==================================================== =====================
========
==================================================== =====================
=====
error estándar coef t P>|t| 95,0% Conf. En t.
Machine Translated by Google
=====
En [31]: plt.figure(tamañofig=(10,6))
plt.plot(realized_vol / 100, label='Volatilidad realizada')
plt.plot(forecast_garch.variance.iloc[len(split_date):] / 100,
label='Predicción de volatilidadGARCH')
plt.title('Predicción de volatilidad con GARCH', tamaño de fuente=12)
plt.leyenda()
plt.savefig('imagenes/garch.png')
plt.mostrar()
Machine Translated by Google
Las principales razones para aplicar GARCH al modelado de volatilidad son que los
rendimientos se ajustan bien al modelo GARCH, en parte debido a la agrupación
de volatilidad y GARCH no supone que los rendimientos sean independientes,
lo que permite modelar la propiedad leptocúrtica de los rendimientos. Sin embargo, a
pesar de estas útiles propiedades y su carácter intuitivo, GARCH no es capaz de
responder asimétricamente a las perturbaciones (Karasan y Gaygisiz (2020)).
Para solucionar este problema, Glosten, Jagannathan y Runkle (1993) propusieron GJRGARCH.
GJRGARCH
Este modelo funciona bien al modelar los efectos asimétricos de los anuncios
de manera que las malas noticias tienen un impacto mayor que el de las buenas. En
otras palabras, en presencia de asimetría, la distribución de las pérdidas tiene una cola
más gruesa que la distribución de las ganancias. La ecuación del modelo incluye un
parámetro más γ y toma la siguiente forma:
Machine Translated by Google
q pag
2 2 2
2σt = ω+ tk + γr t−kI( t−1 < 0)) + βkσ ∑ tk
__
∑ (αkr
k=1 k=1
En [32]: bic_gjr_garch = []
bic_gjr_garch.append(gjrgarch.bic) si gjrgarch.bic
== np.min(bic_gjr_garch): best_param = p, q
==================================================== =====================
========
2914
Tiempo: 11:19:35 Modelo Df:
0
Modelo de volatilidad
==================================================== =====================
======
error estándar coef t P>|t| 95,0% Conf. En t.
======
label='Predicción de volatilidadGJRGARCH')
plt.title('Predicción de volatilidad con GJRGARCH', tamaño de fuente=12)
plt.legend()
plt.savefig('images/gjr_garch.png')
plt.show()
EGARCH
Junto con el modelo GJRGARCH, EGARCH propuesto por Nelson (1991),
también es una herramienta para controlar el efecto de los anuncios
asimétricos y adicionalmente se especifica en forma logarítmica, no hay
necesidad de poner restricciones para evitar volatilidad negativa.
q q
+∑
pag
|rk−1 | rtk
2
log(σt ) = ω + ∑ βklogσtk
2
+ ∑ αi γk
k=1 k=1 k=1
√σ 2 tk √σ 2 tk
Machine Translated by Google
En [35]: bic_egarch = []
==================================================== =====================
========
==================================================== =====================
========
error estándar coef t P>|t| 95,0% Conf. En t.
Machine Translated by Google
1.9786e03 8.231e03 omega 0,240 0.810
[1.811e02,1.415e02]
alfa[1] 0,1879 8,662e02 2.170 3.004e02 [1.816e02,
0,358]
alfa[2] 0.0661 0.130 0.508 0,612 [ 0,189,
0,321]
alfa[3] 0.0129 0.212 6.081e02 0,952 [ 0,429,
0,403]
alfa[4] 0,0936 9,336e02 1.003 0,316 [8,936e02,
0,277]
gama[1] 0,2230 3,726e02 5.986 2.149e09 [ 0,296,
0,150]
beta[1] 0.8400 0.333 2.522 1.168e02 [ 0,187,
1.493]
beta[2] 4.1051e14 0,658 6,235e14 1.000 [ 1.290,
1.290]
beta[3] 1.2375e14 0,465 2,659e14 1.000 [ 0,912,
0,912]
beta[4] 0.0816 0.202 0.404 0,686 [ 0,314,
0,478]
==================================================== =====================
========
Dado el resultado del RMSE, los modelos con mejor y peor rendimiento son GARCH
y ARCO, respectivamente. Pero no hay grandes diferencias entre los
rendimiento del modelo que hemos utilizado anteriormente. En particular, durante
Anuncio de malas/buenas noticias, el desempeño de EGARCH y GJRGARCH podría
ser diferente debido a la asimetría en el mercado.
Modelo RMSE
ARCO 0.0896
GARCIA 0.0878
GJRGARCH 0.0880
EGARCH 0.0895
Machine Translated by Google
Hasta ahora, hemos analizado los modelos de volatilidad clásicos, pero a partir de ahora
veremos cómo se pueden utilizar el aprendizaje automático y el enfoque bayesiano para
modelar la volatilidad. En el contexto del aprendizaje automático, las máquinas de vectores de
soporte y las redes neuronales serán los primeros modelos en visitarse. Empecemos.
(SVM) de GARCH son un algoritmo de aprendizaje supervisado, que puede ser aplicable
tanto a la clasificación como a la regresión. El objetivo en SVM es encontrar una línea que
separe dos clases. Suena fácil, pero aquí está la parte desafiante: hay casi
infinitas líneas que se pueden usar para distinguir las clases. Pero buscamos la recta óptima
por la que se puedan discriminar perfectamente las clases.
En álgebra lineal, la línea óptima se llama hiperplano, que maximiza la distancia entre los
puntos más cercanos al hiperplano pero que pertenecen a diferentes clases. La
distancia entre los dos puntos, es decir, los vectores de soporte, se conoce como margen.
Entonces, en SVM, lo que intentamos hacer es maximizar el margen entre los vectores de
soporte.
La SVM para clasificación está etiquetada como Clasificación de vectores de soporte (SVC).
Manteniendo todas las características de SVM, puede ser aplicable a la regresión.
Nuevamente, en regresión, el objetivo es encontrar el hiperplano que minimice el error y
maximice el margen. Este método se llama Regresión de vectores de soporte (SVR) y, en
esta parte, aplicaremos este método al modelo GARCH.
De la combinación de estos dos modelos surge un nombre diferente: SVRGARCH.
Machine Translated by Google
¿Qué sucede si los datos con los que estamos trabajando no pueden ser
separables linealmente? Eso sería un gran dolor de cabeza para nosotros, pero no te
preocupes, tenemos funciones del Kernel para solucionar este problema. Es un método
agradable y sencillo para modelar datos no lineales y de alta dimensión. Los pasos que
damos en Kernel SVM son:
Para hacer eso usamos funciones del kernel. Usar la idea de mapa de características
indica que nuestras variables originales se asignaron a un nuevo conjunto de cantidades y se
pasaron al algoritmo de aprendizaje.
Finalmente, en lugar de datos de entrada utilizamos las siguientes funciones principales del Kernel en
El siguiente código nos muestra los preparativos antes de ejecutar SVRGARCH en Python.
El paso más crucial aquí es obtener variables independientes, que son la volatilidad
realizada y el cuadrado de los rendimientos históricos.
svr_garch_linear.png') plt.show()
La Figura 47 muestra los valores predichos y la observación real. A simple vista, se
puede decir que SVRGARCH funciona bien. Como puede adivinar, el kernel lineal funciona
bien si el conjunto de datos es linealmente separable y también es la sugerencia de _Occam's
3
Razor_. ¿Qué pasa si no es así? Sigamos con RBF y núcleos polinomiales. El primero
utiliza curvas elípticas alrededor de las observaciones y el segundo, a diferencia de los dos
primeros, también se centra en las combinaciones de muestras. Veamos ahora cómo
funcionan.
A continuación se puede encontrar la aplicación SVRGARCH con kernel RBF, una función
que proyecta datos en un nuevo espacio vectorial. Desde el punto de vista práctico, la
aplicación SVRGARCH con diferentes núcleos no es un proceso que requiere mucha
mano de obra, todo lo que necesitamos es cambiar el nombre del núcleo.
clf.fit(X.iloc[:n].values,
realizado_vol.iloc[1:(n1)].values.reshape(1,)) predict_svr_rbf
= clf.predict(X.iloc[n] :])
plt.savefig('images/svr_garch_rbf.png') plt.show()
Por último, se emplea SVRGARCH con núcleo polinómico, pero resulta que
tiene el RMSE más bajo, lo que implica que es el núcleo con peor rendimiento
entre estas tres aplicaciones diferentes.
Red neuronal
La red neuronal (NN) es la piedra angular del aprendizaje profundo. En NN, los datos se
procesan en múltiples etapas para tomar una decisión. Cada neurona toma el resultado de
un producto escalar como entrada y lo utiliza como entrada en la función de activación
para tomar una decisión.
z = w1x1 + w2x2 + b
Machine Translated by Google
Durante este proceso, los datos de entrada se llevan a cabo diversas manipulaciones
matemáticas en capas ocultas y de salida. En términos generales, NN tiene tres tipos de capas:
Capa de entrada
capa oculta
Capa de salida
La capa de entrada incluye datos sin procesar. Al pasar de la capa de entrada a la capa oculta,
aprendemos coeficientes. Puede haber una o más capas ocultas según la estructura de
la red. Mientras más capa oculta tenga la red, más complicada será. La capa oculta, ubicada entre
las capas de entrada y salida, realiza una transformación no lineal mediante la función de activación.
Finalmente, la capa de salida es la capa en la que se produce la salida y se toman las decisiones.
δJ
l δ= yo
δz
j
donde z es la transformación lineal y δ representa el error. Hay mucho más que decir pero para
mantener el rumbo me detengo aquí. Para aquellos que quieran profundizar más en las
matemáticas detrás de Neural Network, consulte Wilmott (2013) y Alpaydin (2020).
Machine Translated by Google
DESCENSO DE GRADIENTE
δJ θt+1 = θt −
λ δθt
realizado_vol.iloc[1:(n1)].values.reshape(1, ))
NN_predicciones = clf.predict(X.iloc[n:])
5
Ajuste del modelo de red neuronal a los datos de entrenamiento.
DL_pred = []
DL_RMSE =
[] para i, j, k en zip(rango(4), epochs_trial, lote_trial):
model.fit(X.iloc[:n].values,
realizado_vol.iloc[1:(n1)].values.reshape(1,),
lote_size=k, epochs=j, detallado=False)
DL_predict = model.predict(np.asarray(X.iloc[n:]))
DL_RMSE.append(np.sqrt(mean_squared_error(realized_vol.iloc[n:] / 100,
DL_predict.flatten() / 100)))
DL_pred.append(DL_predict)
print('DL_RMSE_{}:{:.6f}'.format(i+1, DL_RMSE[i]))
DL_RMSE_1:0.000524
DL_RMSE_2:0.001118
DL_RMSE_3:0.000676
DL_RMSE_4:0.000757
Resulta que obtenemos una puntuación RMSE mínima a medida que aumentamos el tamaño
de la capa, lo cual es bastante comprensible porque la mayoría de las veces el número de capas y
Machine Translated by Google
La Figura 411 muestra el resultado de la predicción de la volatilidad derivado del siguiente código
e implica que el aprendizaje profundo también proporciona una herramienta sólida para
modelar la volatilidad.
Enfoque bayesiano
La forma en que abordamos la probabilidad es de importancia central en el sentido de que
distingue el enfoque clásico (o frecuentista) del bayesiano.
Según el primer método, la frecuencia relativa convergerá a la probabilidad real. Sin embargo,
la aplicación bayesiana se basa en lo subjetivo.
Machine Translated by Google
Entre los posibles valores de θ , lo que intentamos hacer es decidir cuál es más probable.
Según el modelo estadístico propuesto por la función de verosimilitud, los datos observados
x1, . . . , xp es el más probable.
A la luz de esta información, podemos estimar L (x|θ) usando la densidad previa Pr (θ) y
obtenemos la siguiente fórmula. Prior se emplea cuando necesitamos estimar la distribución
condicional de los parámetros dadas las observaciones.
L (datos|θ) Pr (θ)
Pr (θ|datos) =
Pr (datos)
dónde
Posterior Probabilidadxanterior
En este contexto, el teorema de Bayes suena atractivo, ¿no? Bueno, lo es, pero tiene un costo,
que es la intratabilidad analítica. Incluso si el teorema de Bayes es teóricamente intuitivo,
en general es difícil de resolver analíticamente. Éste es el principal inconveniente de la amplia
aplicabilidad del teorema de Bayes. Sin embargo, la buena noticia es que los métodos
numéricos proporcionan métodos sólidos para resolver este modelo probabilístico.
Entonces, se proponen algunos métodos para abordar la cuestión computacional del teorema
de Bayes. Estos métodos proporcionan una solución aproximada, que se puede enumerar como:
Aproximación de cuadratura
Enfoque de cuadrícula
MetrópolisHastings
Muestra de Gibbs
La probabilidad del estado actual st depende sólo del estado más reciente st1.
Por lo tanto, MCMC se basa en la cadena de Markov para encontrar el espacio de parámetros θ
con la mayor probabilidad posterior. A medida que crece el tamaño de la muestra, los valores de
los parámetros se aproximan a la densidad posterior.
D
lím θ j →Pr (θ|x)
j→+∞
donde D se refiere a la aproximación distributiva. Los valores obtenidos del espacio de parámetros se
pueden utilizar para hacer inferencias sobre posterior. En pocas palabras, el método MCMC nos
ayuda a recopilar muestras iid de la densidad posterior para que podamos calcular la probabilidad
posterior.
Para ilustrarlo, podemos referirnos a la Figura 412. Esta cifra nos dice la probabilidad de pasar de un
estado a otro. En aras de la simplicidad, establecemos la probabilidad en 0,2, lo que indica, por
ejemplo, que la transición del estudio al sueño tiene una probabilidad de 0,2.
En [72]: G = nx.MultiDiGraph()
G.add_nodes_from(estados)
para k, v en bordes_wts.items():
tmp_origin, tmp_destination = k[0], k[1]
G.add_edge(tmp_origin, tmp_destination, peso=v, etiqueta=v)
Hay dos métodos MCMC comunes: MetropolisHastings y Gibbs Sampler. Aquí profundizamos
en el primero.
MetropolisHastings
MetropolisHastings (MH) nos permite tener un procedimiento de muestreo eficiente con dos
pasos: primero extraemos una muestra de la densidad de la propuesta y, en el segundo
paso, decidimos aceptar o rechazar.
Sea q(θ θ t−1) una densidad de propuesta y θ un espacio de parámetros. El algoritmo completo
de MH se puede resumir como:
θt −1)
Pra (θ * ,
θ t−1) = min(1, p(θ
p(*)/q(θ
θ t−1)/q(θ
* t−1 θ *) )
Bueno, parece intimidante pero no lo seas. Tenemos código incorporado en Python que
facilita mucho la aplicabilidad del algoritmo MH. Usamos la biblioteca PyFlux para
hacer uso del teorema de Bayes. Apliquemos el algoritmo MH para predecir la volatilidad.
==================================================== =====
====================================================
======================================
Variable latente Mediana Significar
=================== ==========================
======================================
Ninguno
Vale la pena visualizar los resultados de lo que hemos hecho hasta ahora para la
predicción de la volatilidad con el modelo Garch basado en bayesiano.
La Figura 415 visualiza las predicciones posteriores del modelo bayesiano con
los datos para que podamos detectar discrepancias sistemáticas, si las hubiera. El
Machine Translated by Google
Una vez que hayamos terminado con la parte de entrenamiento, todos nos prepararemos
para pasar a la siguiente fase, que es la predicción. Se realiza un análisis de predicción para el
paso 252 por delante y se calcula el RMSE dada la volatilidad realizada.
y el rendimiento general de este método muestra que no se encuentra entre los mejores
métodos, ya que simplemente supera a SVRGARCH con núcleo polinomial.
Conclusión
La predicción de la volatilidad es clave para comprender la dinámica del mercado
financiero en el sentido de que nos ayuda a medir la incertidumbre. Dicho esto, se utiliza
como entrada en muchos modelos financieros, incluidos los modelos de riesgo. Estos
hechos enfatizan la importancia de tener una predicción precisa de la volatilidad.
Tradicionalmente, los métodos paramétricos como ARCH, GARCH y sus extensiones se
han utilizado ampliamente, pero estos modelos adolecen de ser inflexibles. Para remediar
este problema, los modelos basados en datos se consideran prometedores y este
capítulo intenta hacer uso de estos modelos, a saber, máquinas de vectores de
soporte, redes neuronales y modelos basados en aprendizaje profundo, y resulta
que el modelo basado en datos supera al modelo paramétrico. modelos.
Machine Translated by Google
Recursos adicionales
Artículos citados en este capítulo:
Andersen, Torben G., Tim Bollerslev, Francis X. Diebold y Paul Labys. "Modelado
y previsión de la volatilidad realizada". Econométrica 71, núm. 2 (2003): 579625.
1 La varianza condicional significa que la estimación de la volatilidad es una función de los valores pasados de los activos.
devoluciones.
3 La Navaja de Occam, también conocida como ley de la parsimonia, establece que, dado un conjunto de explicaciones, la
explicación más simple es la más plausible y probable.
4 De estas alternativas, Tensorflow, PyTorch y Neurolab son las bibliotecas más destacadas.
Con los libros electrónicos de lanzamiento anticipado, obtiene libros en su forma más
antigua (el contenido sin editar y sin editar del autor mientras escribe) para que pueda
aprovechar estas tecnologías mucho antes del lanzamiento oficial de estos títulos.
Este será el quinto capítulo del libro final. Tenga en cuenta que el repositorio de GitHub se
activará más adelante.
El riesgo es omnipresente en las finanzas, pero es difícil de cuantificar. Lo primero y más importante
que hay que saber es diferenciar las fuentes de los riesgos financieros, ya que podría no ser una
buena decisión utilizar las mismas herramientas contra los riesgos financieros que surgen de
diferentes fuentes.
Por lo tanto, tratar diferentes fuentes de riesgo financiero es crucial ya que el impacto de los
diferentes riesgos financieros, así como las herramientas desarrolladas para mitigarlos, son
completamente diferentes. Si se supone que las empresas están sujetas a grandes
fluctuaciones del mercado, todos los activos de la cartera de las empresas son susceptibles al
riesgo derivado de estas fluctuaciones. Sin embargo, se debería desarrollar una herramienta
diferente para hacer frente al riesgo que emana del perfil del cliente. Además, hay que tener en
cuenta que diferentes factores de riesgo contribuyen significativamente a los precios de los activos.
Todos estos ejemplos implican que la evaluación de los factores de riesgo necesita una
consideración cuidadosa en las finanzas.
cuatro tipos principales de riesgo. Por lo tanto, estos tipos de riesgos serán nuestro enfoque a lo largo de
este capítulo.
El riesgo de mercado es el riesgo que surge de cambios en los indicadores financieros como el tipo de
cambio, la tasa de interés, la inflación, etc. De otra manera, el riesgo de mercado puede referirse al riesgo
de pérdidas en posiciones dentro y fuera de balance que surgen de movimientos en los precios de
mercado (BPI, 2020). Veamos ahora cómo estos factores afectan el riesgo de mercado. Supongamos
que un aumento en la tasa de inflación podría representar una amenaza para la rentabilidad actual de las
instituciones financieras con miras a que la inflación cree presión sobre la tasa de interés. Esto, a
su vez, afecta el costo de los fondos para el prestatario. Estos casos pueden amplificarse, pero también
debemos tener en cuenta las interacciones de estas fuentes de riesgo financiero. Es decir, mientras una
única fuente de riesgo financiero cambia, otras fuentes de riesgo no pueden permanecer constantes. Dicho
esto, hasta cierto punto, los indicadores financieros están interrelacionados, lo que significa que se deben
tener en cuenta las interacciones de estas fuentes de riesgos.
Como puedes imaginar, existen diferentes herramientas para medir el riesgo de mercado. De ellas, las
herramientas más destacadas y ampliamente aceptables son el valor en riesgo (VaR) y el déficit esperado
(ES). El objetivo final de este capítulo es aumentar estos enfoques utilizando desarrollos recientes en
aprendizaje automático. En esta coyuntura, sería tentador preguntar: ¿fracaso el modelo tradicional en el
ámbito financiero? ¿Y qué hace diferente al modelo basado en ML?
Empezaré abordando la primera pregunta. El primer y principal desafío que los modelos tradicionales
no pueden abordar es la complejidad del sistema financiero. Debido a algunas suposiciones
sólidas o simplemente a la incapacidad de capturar la complejidad introducida por los datos, los
modelos tradicionales de larga data han comenzado a ser reemplazados por modelos basados en
ML.
Para abordar la segunda pregunta, sería prudente pensar en la lógica de funcionamiento de los
modelos de ML. Los modelos ML, a diferencia de los antiguos métodos estadísticos, intentan revelar
la asociación entre variables, identificar variables clave y permitirnos descubrir el impacto de
las variables en la variable dependiente sin necesidad de una teoría bien establecida. De hecho, esta
es la belleza del modelo ML, ya que los modelos ML, sin requerir muchos supuestos restrictivos y
sólidos, nos permiten descubrir teorías, y mucho menos exigirlas.
En la siguiente parte, iniciamos nuestra discusión sobre los modelos de riesgo de mercado.
Primero, hablamos de la aplicación del valor en riesgo (VaR) y del déficit esperado (ES). Después
de la aplicación tradicional de estos modelos, aprenderemos a utilizarlos utilizando el enfoque basado
en ML. Entremos.
Valor en riesgo
La aparición del modelo VaR se debe a una solicitud de un ejecutivo de JP Morgan que quería tener
un informe resumido que mostrara las posibles pérdidas y los riesgos en un día a los que está
expuesto JP Morgan. En este informe se informa a los ejecutivos sobre el riesgo asumido por la
institución de manera agregada.
El método mediante el cual se calcula el riesgo de mercado se conoce como VaR. Por lo tanto, es el
punto de partida del VaR y, ahora, se ha generalizado tanto que los reguladores han obligado su
adopción.
La adopción del VaR se remonta a la década de 1990 y, a pesar de numerosas extensiones del VaR
y nuevos modelos propuestos, todavía está en uso. Entonces, ¿qué lo hace tan atractivo?
tal vez la cuestión a abordar. La respuesta viene de Kevin Dowd:
Machine Translated by Google
La cifra del VaR tiene dos características importantes. La primera es que proporciona
una medida común y consistente del riesgo entre diferentes posiciones y factores de riesgo.
Nos permite medir el riesgo asociado con una posición de renta fija, digamos, de una
manera que sea comparable y consistente con una medida del riesgo asociado con posiciones
de renta variable. El VaR nos proporciona un criterio de riesgo común, y este criterio hace
posible que las instituciones gestionen sus riesgos de nuevas formas que antes no eran
posibles. La otra característica del VaR es que tiene en cuenta las correlaciones entre
diferentes factores de riesgo. Si dos riesgos se compensan entre sí, el VaR permite esta
compensación y nos dice que el riesgo general es bastante bajo.
El VaR proporciona una respuesta muy intuitiva y práctica a esta pregunta. En este sentido,
se utiliza para medir la peor pérdida esperada de una empresa durante un período
determinado y un intervalo de confianza predefinido. Supongamos que el VaR diario de una
inversión es de 10 millones de dólares con un intervalo de confianza del 95%. Esto dice así:
Existe un 5% de posibilidades de que el inversor pueda incurrir en una pérdida superior a 10
millones de dólares en un día.
Según la definición anterior, resulta que los componentes del VaR son el intervalo de confianza,
el período de tiempo, el valor de un activo o cartera y la desviación estándar, ya que
hablamos de riesgo.
En resumen, hay algunos puntos importantes en el análisis del VaR que es necesario destacar:
Intervalo de confianza
VaR de varianzacovarianza
VaR de Montecarlo
Método de varianzacovarianza
El método de varianzacovarianza también se conoce como método paramétrico porque
se supone que los datos están distribuidos normalmente. El método de varianzacovarianza
es común debido a este supuesto; sin embargo, vale la pena señalar que los
rendimientos no tienen una distribución normal. El supuesto de forma paramétrica
hace que la aplicación del método de varianzacovarianza sea práctica y fácil de aplicar.
Como en todos los enfoques de VaR, podemos trabajar con un solo activo o con
una cartera. Sin embargo, trabajar con cartera requiere un tratamiento cuidadoso en el
sentido de que es necesario estimar la estructura de correlación y la varianza de la cartera.
Exactamente en este punto, la correlación entra en escena y los datos históricos se utilizan
para calcular la correlación, la media y la desviación estándar. Si bien
aumentamos esto con un enfoque basado en ML, nuestro enfoque principal será la
estructura de correlación.
Supongamos que tenemos un solo activo, en la Figura 51, se muestra que la media de
este activo es cero y la desviación estándar es 1 y si el período de tenencia es 1, se puede
calcular el valor VaR correspondiente al valor del activo. por el valor Z correspondiente
y la desviación estándar. Por lo tanto, el supuesto de normalidad facilita las cosas, pero es
un supuesto sólido porque no hay garantía de que los rendimientos de los
activos se distribuyan normalmente, sino que la mayoría de los rendimientos de los
activos no siguen una distribución normal. Además, debido a la normalidad
Machine Translated by Google
En [2]: media = 0
std_dev = 1
x = np.arange(5, 5, 0.01) y =
norm.pdf(x, media, std_dev) pdf =
plt.plot(x, y) min_ylim,
max_ylim = plt.ylim()
plt.text(np.percentile(x, 5), max_ylim * 0.9, '95%:$
{:.4f}' .format(np.percentile(x, 5)))
plt.axvline( np.percentile(x, 5), color='r', estilo de línea='discontinuo', ancho de línea=4)
plt.title('Ilustración de valor en riesgo')
plt.savefig('images/VaR_Illustration.png')
plt.mostrar()
En [3]: media = 0
std_dev = 1
x = np.arange(5, 5, 0.01) y =
norm.pdf(x, media, std_dev) pdf =
plt.plot(x, y) min_ylim,
max_ylim = plt.ylim()
plt.text(np.percentile(x, 5), max_ylim * 0.9, '95%:$
{:.4f}' .format(np.percentile(x, 5)))
plt.axvline( np.percentile(x, 5), color='r', estilo de línea='discontinuo', ancho de línea=4)
plt.title('Ilustración de valor en riesgo')
plt.savefig('images/VaR_Illustration.png')
plt.mostrar()
NOTA
Siguiendo a Fama (1965), se observa que algunos rendimientos de los precios de las acciones no siguen una
distribución normal debido a la cola gruesa y la asimetría. Más bien siguen una distribución leptocúrtica. Esta
observación empírica implica que los rendimientos de las acciones tienen una curtosis mayor que la de la
distribución normal.
Tener una curtosis alta equivale a una cola gruesa y esto podría generar retornos negativos extremos.
Como el método de varianzacovarianza no puede capturar la cola gruesa, no puede, por lo tanto, estimar el
rendimiento negativo extremo, que probablemente ocurrirá especialmente en el período de crisis.
Machine Translated by Google
VaR = Vσp√tZα
2 2
1 + w2 2σ2 + ρw1w2σ1σ2
σp = √w2 1σ
respuesta = solicitudes.get('https://www.alphavantage.co/query',
parámetros=parámetros)
En [6]: acciones.head()
Fuera[6]: IBM MSFT INTC
marca de
tiempo 20200102 135,42 160,62 60,84
20200103 134,34 158,62 60,10
20200106 134,10 159,03 59,93
20200107 134,19 157,58 58,93
20200108 135,31 160,09 58,97
Machine Translated by Google
Identificar los parámetros que se utilizarán para extraer los datos de Alpha Vantage.
Invertir los datos que cubren el período de examen y adjuntar los precios diarios de
las acciones de IBM, MSFT e INTC.
NOTA
Alpha Vantage es una empresa proveedora de datos asociada con las principales bolsas e
instituciones. Con Alpha Vantage API, es posible acceder a los precios de las acciones con diferentes
intervalos de tiempo, es decir, intradiario, diario, semanal, etc., a los fundamentos de las acciones y
a la información de Forex. Para obtener más información, consulte el sitio web de Alpha Vantage.
Generando pesos.
Dado el horizonte temporal, el resultado del valor en riesgo cambia debido al hecho de que
mantener el activo durante un período más largo hace que el inversor sea más susceptible
al riesgo. Como se muestra en la Figura 52, el VaR aumenta en relación con la tenencia
Machine Translated by Google
tiempo por la cantidad de √t. Además, el período de tenencia es el más largo para
la liquidación de cartera. Teniendo en cuenta el propósito del informe, un
período de 30 días puede ser más adecuado para un inversionista y se
ilustra en la Figura 52.
En [12]: var_horizon = []
time_horizon = 30
para j en rango(len(stocks_returns.columns)): para
i en rango(1, time_horizon + 1):
var_horizon.append(VaR_param[j] * np.sqrt( i))
plt.plot(var_horizon[:time_horizon], "o", c='blue',
marcador='*', label='IBM')
plt.plot(var_horizon[time_horizon:time_horizon + 30], "o ",
c='verde', marcador='o', etiqueta='MSFT')
plt.plot(var_horizon[time_horizon + 30:time_horizon + 60], "o",
c='rojo', marcador='v', etiqueta='INTC')
plt.xlabel("Días")
plt.ylabel("USD")
plt.title("VaR durante un período de 30
días") plt.savefig ('imagenes/
Concluimos esta parte enumerando los pros y los contras del método Varianza
Covarianza.
Ventajas
Fácil de calcular
Contras
Por lo tanto, aunque suponer que la normalidad suena atractivo, puede que no sea la mejor
manera de estimar el VaR, especialmente en el caso en que el rendimiento del activo no tiene
Machine Translated by Google
En [14]: VaR_historical(inversión_inicial,nivel_conf)
Basado en valores históricos, el 95% del rendimiento de IBM es 0,0371.
El resultado histórico del VaR de IBM es 37081,53.
El método VaR de simulación histórica supone implícitamente que los cambios históricos de precios
tienen un patrón similar, es decir, que no hay ruptura estructural. Los pros y los contras de este método
son los siguientes:
Ventajas
Fácil de calcular
Contras
Engañar si una empresa está sujeta a ambigüedad, como las acciones de empresas en
crecimiento.
que se utiliza para realizar una estimación en el caso de que no exista una solución de forma cerrada. Por
tanto, es una herramienta muy eficaz para la aproximación numérica. Monte Carlo se basa en muestras
Los métodos de Monte Carlo se basan en la analogía entre probabilidad y volumen. Las
matemáticas de la medida formalizan la noción intuitiva de probabilidad, asociando un
evento con un conjunto de resultados y definiendo la probabilidad del evento como su
volumen o medida relativa al de un universo de resultados posibles. Monte Carlo utiliza
esta identidad a la inversa, calculando el volumen de un conjunto interpretando el volumen
como una probabilidad.
Desde el punto de vista de la aplicación, Monte Carlo es muy similar al VaR de simulación
histórica pero no utiliza observaciones históricas. Más bien, genera muestras
aleatorias a partir de una distribución determinada. Por lo tanto, Monte Carlo ayuda a los
tomadores de decisiones al proporcionar un vínculo entre los posibles resultados
y las probabilidades, lo que lo convierte en una herramienta eficiente y aplicable en finanzas.
1
E(f(X)) ≈ norte
∑Nf
i (Xi)
Definir el dominio
π
4 ecuación.1
Circunferenciacirculo
= metro
ecuación 2
Áreacuadrada norte
π = 4x
metro
norte
Si vamos paso a paso, el primero es definir el dominio que es [1,1]. Entonces, los números
2 2
dentro del círculo satisfacen: x +y ≤ 1.
En [17]: pi_calc(x,y) el
valor pi es 3,36
media = np.aleatorio.aleatorio(3)
estándar = np.aleatorio.aleatorio(3)
para i en rango (len (existencias.columnas)):
temp = pd.DataFrame(np.random.normal(media[i], std[i], num_reps))
datos_sim = pd.concat([datos_sim, temperatura],eje=1)
sim_data.columns = ['Simulación 1', 'Simulación 2', 'Simulación 3']
En [21]: datos_sim
Fuera[21]: Simulación 1 Simulación 2 Simulación 3
0 0,475188 1.587426 1.334594
1 0.547615 0.169073 0.684107
2 0.486227 1.533680 0,755307
3 0.494880 0.230544 0.471358
4 0.580477 0.388032 0.493490
.. ... ... ...
995 0.517479 0.387384 0.539328
996 0.286267 0.680610 0.409003
997 0.398601 0.733176 0.820090
998 0,624548 0.482050 0.821792
999 0.627089 1.405230 1.275521
Comprobando si los puntos están dentro del círculo, que tiene un radio de 1.
Denoising Volatility
está en todas partes, pero es una tarea formidable descubrir qué tipo de volatilidad es
más valiosa. En general, existen dos tipos de información en el mercado: ruido y señal. El
primero no genera más que información aleatoria, pero el segundo nos proporciona
información valiosa con la que los inversores pueden ganar dinero. A modo de ejemplo,
considere que hay dos actores principales en el mercado: uno que utiliza información
ruidosa, llamado comerciante de ruido, y un comerciante informado que explota señales o
información privilegiada. La motivación comercial de los traders ruidosos está impulsada
por un comportamiento aleatorio. Por lo tanto, se cree que el flujo de información hacia las
señales del mercado es una señal de compra para algunos operadores de ruido y de venta
para otros.
Ahora, el problema resulta ser diferenciar el flujo de información hacia los mercados financieros.
¿Cómo podemos diferenciar el ruido de la señal? y cómo podemos utilizar esta información.
Ahora es apropiado discutir el Teorema de Marcenko Pastur que nos ayuda a tener una matriz
de covarianza homogénea. El teorema de MarcenkoPastur nos permite extraer señales
del ruido utilizando valores propios de la matriz de covarianza.
NOTA
Sea A R nxn
una matriz cuadrada. Entonces, λ R es un valor propio de A y
x mathbbRn{0} es el vector propio correspondiente de A si
Hacha = λx
Para diferenciar ruido y señal, ajustamos el PDF del teorema de Marcenko Pastur a la
covarianza ruidosa. La PDF del teorema de Marcenko Pastur toma la siguiente forma
(Prado, 2020):
f(λ) = { 0, si λ [λ − λ−]
lambda_minus))
pdf_mp = pd.Series(pdf_mp, index=l) devolver
pdf_mp
corr_mat.shape[0] q =
corr_mat.shape[ 0] / corr_mat.forma[1]
plt.show()
devolver plt
Llamar a la función kde_fit para ajustar la distribución del kernel a los datos.
La Figura 53 muestra que la distribución de MarchenkoPastur se ajusta bien a los datos.
Gracias al teorema de MarchenkoPastur podemos diferenciar el ruido de la señal y los datos en los que
Hasta ahora, hemos analizado los principales pasos a seguir para eliminar el ruido de la matriz de
covarianza para poder conectarla al modelo VaR, que se denomina estimación de VaR sin ruido . Eliminar
el ruido de la matriz de covarianza no es más que eliminar información innecesaria (ruido)
de los datos. Entonces, utilizamos la señal del mercado, que nos dice que algo importante está
sucediendo en el mercado.
1
La eliminación de ruido de la matriz de covarianza incluye las siguientes etapas:
Utilizando la estimación de densidad del núcleo, encuentre el vector propio para un valor
propio específico.
En el Apéndice puede encontrar el algoritmo que incluye todos estos pasos, pero aquí
Me gustaría mostrarles lo fácil que es aplicar la búsqueda de una matriz de covarianza
sin ruido con unas pocas líneas de código utilizando la biblioteca portfoliolab en Python:
print('' * 25)
devuelve VaR_params
Ahora, logramos obtener el VaR basado en ML utilizando una matriz de covarianza sin
ruido en lugar de una matriz empírica que calculamos directamente a partir de los datos.
A pesar de su atractivo y facilidad, el VaR no es una medida de riesgo coherente. Ser una
medida de riesgo coherente requiere que se cumplan ciertas condiciones o axiomas. Puede
pensar en estos axiomas como requisitos técnicos para una medida de riesgo.
NOTA
Para ilustrar, digamos que ω es el conjunto de todos los resultados posibles en caso de lanzar una moneda, ω=
{ω}=2
{H,T}. F puede tratarse como lanzar una moneda dos veces, F=2 2. Finalmente, la medida de probabilidad, P, es que
la probabilidad de obtener cruz es 0,5.
Significa que si se agrega una cantidad sin riesgo de a a la cartera, se obtiene un VaR más bajo
por la cantidad de a.
Resulta que el VaR de la cartera es menor que la suma de los VaR individuales, lo que
no tiene sentido debido a la mitigación del riesgo mediante la diversificación. Más
detalladamente, el VaR de la cartera debería ser menor que la suma de los VaR individuales
a través de la diversificación, ya que la diversificación mitiga el riesgo, lo que a su vez
reduce el VaR de la cartera.
V aR(aY ) = aV aR(L)
Implica que el riesgo y el valor de la cartera van en conjunto, es decir, si el valor de una cartera
aumenta en una cantidad de a, el riesgo aumenta en una cantidad de a.
V aR(Y1) ≥ V aR(Y2)
Al principio puede parecer desconcertante pero es intuitivo. La monotonicidad indica que un
activo con mayor rendimiento tiene un menor VaR.
A la luz de la discusión anterior, ahora sabemos que el VaR no es una medida de riesgo
coherente. Pero no te preocupes, el VaR no es la única herramienta con la que estimamos
el riesgo de mercado. El déficit esperado es otra medida coherente del riesgo de mercado.
Riesgos inesperados en el mercado. Sin embargo, esto no significa que el déficit esperado
y el VaR sean dos conceptos completamente diferentes. Más bien, están relacionados,
es decir, es posible expresar el déficit esperado utilizando el VaR.
donde q denota el cuantil de la distribución de pérdidas. La fórmula del déficit esperado sugiere
que no es más que un promedio ponderado de probabilidad de (1 − α)% de las pérdidas.
Hasta ahora hemos visto cómo modelar el déficit esperado de forma tradicional. Ahora
es el momento de introducir un enfoque basado en ML para mejorar aún más el
rendimiento de la estimación y la confiabilidad del modelo ES.
Como ya se ha comentado, ES nos proporciona una medida de riesgo coherente para medir el riesgo de
mercado. Sin embargo, aunque diferenciamos el riesgo financiero en mercado, crédito, liquidez y operativo,
eso no significa necesariamente que estos riesgos no tengan ninguna relación entre sí. Más bien, hasta
Es decir, una vez que una crisis financiera golpea el mercado, los aumentos repentinos del riesgo de
mercado se alinean con la reducción de las líneas de crédito, lo que a su vez aumenta el riesgo de liquidez.
Dada la situación de la economía, el efecto de la iliquidez varía, ya que se vuelve común durante las
grandes crisis del mercado, pero es más manejable en tiempos normales. Por lo tanto, su impacto
El fondo común de activos líquidos es la restricción de recursos a través de la cual el riesgo de liquidez
puede afectar la oferta de crédito hipotecario. Durante la crisis financiera de 20072008, la
principal fuente de tensiones sobre las condiciones de financiación bancaria surgió de la iliquidez de
financiación experimentada en los mercados de financiación mayorista.
Ignorar la dimensión de liquidez del riesgo puede provocar una subestimación del riesgo de mercado. Por
lo tanto, aumentar los ES con el riesgo de liquidez puede dar como resultado una estimación más
precisa y confiable. Bueno, suena atractivo, pero ¿cómo podemos encontrar un indicador de la liquidez?
Machine Translated by Google
NOTA
La liquidez se puede definir como la facilidad de transacción con la que se pueden vender activos en un período de
tiempo muy corto sin un impacto significativo en el precio de mercado. Hay dos medidas principales de liquidez:
La liquidez y el riesgo que de ella se deriva se analizarán con mayor detalle en el Capítulo 7. Por lo tanto, gran parte
de la discusión queda para este capítulo.
En la literatura, las medidas de diferencial entre oferta y demanda se utilizan comúnmente para modelar la
liquidez. En resumen, el diferencial entre oferta y demanda es la diferencia de los precios entre oferta y
demanda. Dicho de otra manera, es la diferencia entre el precio más alto disponible (precio de oferta) que un
comprador está dispuesto a pagar y el precio más bajo (precio de venta) que un vendedor está dispuesto a
obtener. Por lo tanto, el diferencial entre oferta y demanda proporciona una herramienta para medir el
costo de transacción.
En la medida en que el diferencial entre oferta y demanda es un buen indicador del costo de
transacción, también es un buen indicador de la liquidez en el sentido de que el costo de transacción
es uno de los componentes de la liquidez. Los diferenciales se pueden definir de varias maneras
dependiendo de su enfoque. Estos son los diferenciales de oferta y demanda que utilizaremos
para incorporar el riesgo de liquidez en el modelo ES.
Spread efectivo
Spread cotizado
Costo efectivo
(Pt − Pmid)/Pmid para el comprador iniciado
Costo efectivo = { (Pmid/Pt)/Pmid para vendedor iniciado
La operación iniciada por el comprador ocurre cuando una operación se ejecuta a un precio
superior al precio medio cotizado. De manera similar, la operación iniciada por el vendedor ocurre
cuando una operación se ejecuta a un precio inferior al precio medio cotizado.
Ahora, necesitamos encontrar una manera de incorporar estos diferenciales entre oferta y demanda en
el modelo ES para que podamos tener en cuenta el riesgo de liquidez así como el riesgo de mercado.
Empleamos dos métodos diferentes para realizar esta tarea. La primera es tomar la media transversal del
diferencial de oferta y demanda como lo sugieren Chordia et al. (2000) y Pastor y Stambaugh (2003). El
segundo método consiste en aplicar el Análisis de Componentes Principales (PCA) propuesto por
Mancini et al. (2013).
La media transversal no es más que promediar el diferencial entre oferta y demanda. Con este método, podemos
generar una medida de la liquidez de todo el mercado. La fórmula promediada es la siguiente: ∑N Li,t
1
LM,t = norte i
donde LM,t es la liquidez del mercado y Li,t es la medida de liquidez individual, es decir, el
diferencial de oferta y demanda en nuestro caso.
μ es la media de dispersión.
bid_ask['buyer_seller_init'] = comprador_vendedor_iniciado
En [49]: costo_efectivo = []
para i en el rango(len(bid_ask)): if
bid_ask['buyer_seller_init'][i] == 1:
Effective_cost.append((bid_ask['PRC'][i] bid_ask['mid_price'][i])
/
bid_ask['mid_price'][i])
demás:
costo_efectivo.append((bid_ask['mid_price'][i] bid_ask['PRC']
[i])/
bid_ask['mid_price'][i])
bid_ask['coste_efectivo'] = costo_efectivo
prop_efectivo
costo_efectivo 0.999847
cotizado 0.442053
prop_citado 0.728687
efectivo 0.800713
prop_efectivo 1.000000
En [52]: spread_measures.describe()
Out[52]: recuento de citado prop_citado efectivo prop_efectivo
costos_efectivos
756.000000 756.000000 756.000000 756.000000
756.000000
significar 0.004247 1.592583 0.015869 0.844314
0.008484
0.003633 0.921321 0.007791 0.768363
estándar 0.007257
0.000000 0.320000 0.003780 0.000000
mín . 0,000000
25% 0.001517 0.979975 0.010530 0.300007
0.003029
50% 0.003438 1.400000 0.013943 0.610000
0.006874
75% 0.005854 1.962508 0.019133 1.180005
0.011646
máximo 0.023283 8.110000 0.055451 6.750000
0.047677
En [56]: df = pd.DataFrame(índice=acciones.columnas)
últimos_precios = []
para i en símbolos:
last_prices.append(existencias[i].iloc[1])
df['últimos_precios'] = últimos_precios
Machine Translated by Google
Filtrar los últimos precios de las acciones observados a partir de los datos de las acciones .
PCA es un método utilizado para reducir la dimensionalidad. Se utiliza para extraer la mayor cantidad
de información posible utilizando la menor cantidad de componentes posible. Es decir, en este
ejemplo, de 5 características, elegimos 2 componentes según la Figura 54 que se
muestra a continuación. Entonces, reducimos la dimensionalidad a expensas de perder
información. Porque dependiendo del punto de corte que decidamos, elegimos el número de
componentes y perdemos información tanto como la cantidad de componentes que dejamos.
Para ser más específicos, el punto en el que la Figura 54 se vuelve más plana implica que
retenemos menos información y este es el punto de corte para el PCA. Sin embargo, no es una
decisión fácil ya que existe un equilibrio entre el punto de corte y la información retenida. Es decir,
por un lado, cuanto mayor sea el punto de corte (cuanto mayor número de componentes) tengamos,
más información retendremos (menos dimensionalidad reduciremos). Por otro lado, cuanto menor
sea el punto de corte (menos número de componentes tenemos), menos información retenemos
(mayor dimensionalidad reducimos). Conseguir un terreno de pedregal más plano no es un mero
criterio para seleccionar el número adecuado de componentes. Entonces, ¿cuál sería el
Machine Translated by Google
posibles criterios para seleccionar el número adecuado de componentes. Estos son los
posibles criterios de corte para PCA:
ADVERTENCIA
Tenga en cuenta que el ajuste de liquidez también se puede aplicar al VAR. El mismo procedimiento
se aplica al VaR. Matemáticamente,
V aRL = σp√tZα + 12
Plast(μ + kσ)
En [63]: plt.plot(pca.explained_variance_ratio_)
plt.xlabel('Número de componentes')
plt.ylabel(' Explicación de la variación')
plt.title(' Gráfico de pantalla')
plt.savefig('Scree_plot.png') plt.show()
print(pca.explained_variance_ratio_*100)
[65.65640435 19.29704671]
plt.xlabel("PC{}".format(1))
plt.ylabel("PC{}".format(2)) plt.grid()
Con base en el diagrama de pedregal, decida el número de componentes como 2 que se usarán en
el análisis de PCA.
3 0.962666 0.601529
4 0.831065 0.734612
Conclusión
El riesgo de mercado siempre ha estado bajo escrutinio, ya que nos indica hasta qué punto
una empresa es vulnerable al riesgo que emana de los acontecimientos del mercado. En
un libro de texto de gestión de riesgos financieros, es habitual encontrar un modelo VaR y
ES, que son dos modelos destacados y comúnmente aplicados en la teoría y la práctica.
En este capítulo, después de proporcionar una introducción a estos modelos, se presentan
modelos de vanguardia para revisar y mejorar la estimación del modelo. Para ello, primero
intentamos distinguir la información que fluye en forma de ruido y de señal, lo que se
denomina eliminación de ruido. A continuación, se emplea una matriz de covarianza sin
ruido para mejorar la estimación del VaR.
Machine Translated by Google
Luego, se analiza el modelo ES como una medida de riesgo coherente. El método que
aplicamos para mejorar este modelo es un enfoque basado en la liquidez mediante el cual
revisamos el modelo eS y lo aumentamos utilizando el componente de liquidez para que sea
posible considerar el riesgo de liquidez al estimar los ES.
También es posible realizar mejoras adicionales en la estimación del riesgo de mercado, pero el
objetivo es dar una idea y herramientas para proporcionar un terreno adecuado para los
enfoques de riesgo de mercado basados en el ML. Sin embargo, puedes ir más allá y aplicar
diferentes herramientas. En el próximo capítulo, discutiremos el modelo de riesgo
crediticio sugerido por organismos reguladores como el Comité de Supervisión Bancaria
de Basilea (BCBS) y enriqueceremos este modelo utilizando un enfoque basado en ML.
Recursos adicionales
Artículos citados en este capítulo:
(2003): 642685.
Dowd, Kevin. Una introducción a la medición del riesgo de mercado. John Wiley e
hijos, 2003.
Sobre el Autor