library(copula)
set.seed(123)
11 Cópulas
Hasta el momento hemos visto como construir modelos univariados. Pero existen aplicaciones donde dos riesgos están correlacionados.
Es decir, a partir de la correlación lineal
- Si un riesgo tiene una pérdida muy grande, ¿es más probable que otro riesgo también tenga una pérdida grande?
- ¿Cuáles son las probabilidades de tener varias pérdidas grandes de diferentes tipos de riesgo?
Estas preguntas se responde a partir del concepto de dependencia en las colas construida a partir de la cópula.
11.1 Definición y construcción de cópulas
El concepto de cópula es una distribución generada a partir de las distribuciones marginales de dos o más variables. Formalmente
Una cópula es una función
- Marginales:. Para cualquier
se tiene que . - Isotónica:
si , donde significa que para todo . -creciente: para cualquier caja con volumen no vacío, .
En particular una cópula
Ahora considere cualquier variable aleatoria continua
Construya una función de distribución multivariada de la siguiente manera:
Primero hay que verificar dos cosas
Prueba. Note que cada argumento es no decreciente ya que conforme crece cada
Note que el Teorema 11.1 (Sklar) nos dice que siempre se puede construir esta función
Teorema 11.1 (Teorema de Sklar) Para un vector aleatorio
Prueba. Para una variable
Las ventajas de usar cópulas es que en un problema podemos reconocer el riesgo individual y que este está ligado con otros. Pero no tenemos idea como. El Teorema 11.1 nos dice que podemos experimentar con los riesgos individuales para constuir ese riesgo conjunto desconocido.
11.2 Medidas de asociación
La forma más sencilla de construir una cópula es basado en su correlación
11.2.1 de Spearman
Para dos variables aleatoarios
donde
Si recordamos que la distribución es una variable uniforme
Más concretamente, la
Ejercicio 11.1 Muestre que
11.2.2 de Kendall
Considere dos variables aleatorias bivariadas continuas independientes e idénticamente distribuidas
La medida de asociación, de la
Es claro que esta medida se puede reescribir como
Además se puede reescribir como función de la cópula misma
Ejercicio 11.2 Pruebe la igualdad anterior haciendo lo siguiente:
- Recuerde que
- Separe en dos probabilidades distintas
. - Reconstruya cada termino en terminos de
.
Si la cópula es absolutamente continua, entonces la ecuación anterior se puede reescribir como
donde
11.3 Dependencia en las colas
El interés de construir estos objetos es en caso de que haya pérdidas grandes en una variable, entonces reconocer que también lo existe en las otras.
Considere dos variables aleatorias continuas
En resumen, si
Podemos reescribir esta igualdad como
Haciendo un poco más de álgebra se puede escribir así (¿por qué?):
De acá observamos que la dependencia de las colas puede ser explicada completamente partir de la cópula y no de las distribuciones marginales.
11.4 Generación de cópulas
El punto clave en la discusión de modelos de cópulas es la construcción de la función
11.4.1 Cópulas arquimedianas
La forma de esta cópula es,
- Es una función estrictamente decreciente, convexa y continua.
- Se tiene que
. .- La inversa del generador
debe ser completamente monótona en . Es decir debe cumplir que
Para el caso de dos variables, se puede describir,
de kendall: Haciendo los respectivos cálculos se tiene que
Dependencia de la colas:
con la condición que .
Ejercicio 11.3 Prueben esta propiedad usando el teorema de l’Hopital.
11.4.2 Cópulas independientes
Una caso particular de las arquimedianas es cuando
Ejercicio 11.4 Para este caso en el caso de dos variables se tiene que
. .
¿Por qué se da este fenómeno?
11.4.3 Cópula de Gumbel
Usando
En este caso se debe ajustar el parametro
Ejercicio 11.5 Para este caso en el caso de dos variables se tiene que
. .
11.4.4 Otras cópulas
Nombre | Generador | ||
---|---|---|---|
Joe | |||
BB1 |
11.5 Cópulas elípticas
Estas son generadas principalmente por distribuciones elípticas.
11.5.1 Cópula gaussiana
donde
No existe una forma cerrada simple para la cópula. En el caso bidimensional (con un solo elemento de correlación
Aunque su forma teórica es algo difícil de construir, es muy fácil de simular.
Para dos variable se tiene que
Además,
11.5.2 Cópula -student
La cópula
Se puede estimar que
Para este caso,
11.6 Laboratorio
Para este ejercicio vamos a usar el siguiente paquete
- Abra la ayuda en la función
ellipCopula
y describa que tipo de entradas se necesita y que objeto voy a obtener. - Construya una cópula gauassiana, de dimensión 3 y
. UsegetSigma
para ver la matriz de correlación. - Haga lo mismo con cópula
con 8 df, pero usedispstr='toep'
yparam = c(0.8, 0.5)
. Qué ocurrió? - Finalmente use la función
archmCopula
y construya una cópula gumbel con parámetro 3.
Ejercicio 11.6 En este ejemplo se generarán datos que tengan marginales Gamma con una cópula elíptica.
<-
CopulaModelo mvdc(
copula = ellipCopula(family = "normal", param = 0.5),
margins = c("gamma", "gamma"),
paramMargins = list(list(shape = 2, scale = 1), list(shape = 3, scale = 2))
)
contour(CopulaModelo, dMvdc, xlim = c(-1, 6), ylim = c(-1, 14))
<- 1000
n <- rMvdc(mvdc = CopulaModelo, n = n) dat
- Cuál es la fórmula exacta para calcular los parámetros
shape
yscale
usando los datos.
- Construya la
para estos datos
- Use la función
fitMvdc
para ajustar la cópula sin valores iniciales. ¿Qué parámetros necesita? - Usando los valores iniciales calculados anteriormente vuelva a hacer el ajuste.
- Vuelva a dibujar la copula, pero usando los valores ajustados del punto anterior.
11.7 Cópulas de valor extremo
Una cópula de este tipo tiene la propiedad de tener estabilidad en el máximo. Para entender esta propiedad veamos esta proposición:
Proposición 11.1 Una cópula de valor extremo satisface la igualdad,
para todo
Prueba. Para demostrar esta propiedad, considere el caso bivariado. Supongamos que
Sea
Entonces la función de distribución del par aleatorio
De manera similar, las distribuciones marginales de
El resultado anterior dice que si
En otras palabras, esta propiedad dice la copula asociados con
Se puede probar que la forma general de estas cópulas es
donde
para cualquier
La dependencia de la cola superior se puede escribir como
Algunos ejemplos de este tipo de cópulas son
Nombre | ||
---|---|---|
Gumbel | si |
|
Galambos |
11.7.1 Cópulas Archimax
Combinando cópulas arquimedianas y de valor extremos se puede escribir las siguiente representación,
Nombre | ||||
---|---|---|---|---|
BB4 |
11.8 Estimación por máxima verosimilitud
Recuerde que la cópula es de la forma
y su densidad es
La estimación de los parámetros de la cópula depende de la estimación de las marginales.
Entonces se puede escribir para
- Optimice las
funciones individualmente. - Use esos valores para construir los pseudo-verosimiludes
. - Optimice la pseudo-verosimilitud de la cópula
.
11.9 Medidas de mejor ajuste
Sabemos que
Ahora introduzca las variables aleatorias condicionales
Note que la variable aleatoria
El valor observado de la función de distribución de la variable aleatoria condicional
El método sugerido para probar el ajuste es el siguiente
- Paso 1. Ajuste y seleccione las distribuciones marginales utilizando métodos univariados.
- Paso 2. Pruebe la uniformidad de la distribución condicional de
. - Paso 3. Pruebe la uniformidad de la distribución condicional de
.
Las pruebas a usar son las usuales que hemos visto en el curso.
Para más dimensiones, se pueden probar las variables dos a dos y comprobar el ajuste.
11.9.1 Laboratorio
library(copula)
library(tidyverse)
data(loss)
# loss data loss: pérdida de la compañía hasta cierto límite.
# alae: gastos relacionados con el reclamo (gastos legales, gastos por
# investigaciones, etc. )
ggplot(loss, aes(loss, alae)) +
geom_point()
ggplot(loss, aes(log(loss), log(alae))) +
geom_point()
- Ajuste las variables
loss
yalae
individualmente. Traten Pareto, lognormal, gamma, etc. ¿Cuál es mejor? (Noten que algunos valores están censurados) (usencoef(fit)
para obtener los parámetros correctos.) - Construya las variables
y para cada marginal. Compruebe que la hipotesis de uniformidad se cumple. - Use cópulas Frank, Gumbel, Normal y t para modelar la distribución conjunta de
y . (revise la funciónarchCopula
). - Use la funciones
contour
ypersp
para visualizar la copula. - Revisen la tau de Kendall y la dependencia de la cola para caso.
- Calcule la distribuciones condicionales usando
cCopula
y verifique el supuesto de uniformidad. - Finalmente, calcule el VaR al 95% y 99% de cada margen asumiendo independencia. Usando la función
rMvdc
genere datos aleatorios de cada margen usando la cópula y calcule los mismos niveles de VaR. Compare los resultados.
11.10 El rol de los deducibles
Cada variable puede tener su propio deducibles y las variables en los margenes podrían ser datos individuales o agrupados. Esto genera diferencias para la construcción del estimador de máxima verosimilitud.
En este caso explicaremos las diferencias en el caso bivariado. Recordemos que
donde
En el caso de datos agrupados solo hay que considerar el caso cuando el dato cae sobre intervalo. Llamemos
Consideramos cuatro casos:
- Caso #1: Datos individuales para
y . -
En este caso, se tiene un factor muy similar al visto para el caso univariado. Si
o caen por debajo de su deducibles no son tomadas en cuenta.
- Caso #1: Datos individuales para
- Caso #2: Dato individual para
y dato agrupado para . - Tenemos lo siguiente
- Caso #2: Dato individual para
- Caso #3: Dato individual para
y dato agrupado para . -
- Caso #3: Dato individual para
- Caso #4: Ambos datos agrupados.
-
11.11 Simulación de copulas
Para efectos de análisis de la cópula y las marginales, es necesario definir un proceso para generación de valores aleatorios.
11.11.1 Cópulas Gaussianas
Un vector gaussiano
donde
- Calcule el factor de Cholesky
de la matriz de correlación . - Genera una muestra
. - Calcule
. - Devuelve
.
11.11.2 Cópulas
Este caso es similar al gaussiano, salvo una modificación:
- Calcule el factor de Cholesky
de la matriz de correlación . - Genera una muestra
. - Genere una muestra
independiente de . - Calcule
. - Devuelve
.
11.11.3 Cópulas arquimedianas
Para el caso de las arquimedianas, primero hay que definir lo siguiente.
Sea
La función
La variable aleatoria
Se puede probar que
donde
El algoritmo general es
- Muestree
. - Muestree
, independiente de . - Devuelva
.
11.11.4 Laboratorio
Use el algoritmo de construcción de cópulas gaussianas con matrices covarianza
Use 1000 valores. Compare ambos resultados.Construya una copula normal asumiendo que la
. Revise la funcióniTau
para encontrar el parámetro correcto.Genere con
rCopula
y haga el plot de estos resultados. Comparelos con el punto estos resultados. Comparelos con el punto 1.Suponga que se quiere simular una cópula
con 4 grados de libertad. Repita lo puntos 1 a 3 para este caso. W puede simularse como conPara 5 variables, ajuste una cópula Gumbel con
. UseiTau
de nuevo.Para generar manualmente los valores aleatorios de la cópula se necesita lo siguiente
family = "Gumbel"
cop <- getAcop(family)
V <- cop@V0(n, theta = parametro_de_iTau)
Revise la ayuda de acopula
. 7. Compare este resultado con rCopula
.