Estoy interesado en encontrar un método para generar datos correlacionados, no normales. Entonces, idealmente, algún tipo de distribución que tome una matriz de covarianza (o correlación) como parámetro y genere datos que la aproximen. Pero aquí está el truco: el método que estoy tratando de encontrar debería tener la flexibilidad para controlar también su asimetría y / o curtosis multivariante.
Conozco el método de Fleishman y el uso del método de la potencia de las variaciones normales, pero creo que la mayoría de esas extensiones solo permiten al usuario ciertas combinaciones de asimetría marginal y curtosis, dejando la asimetría / curtosis multivariada por ahí. Lo que me preguntaba es si hay un método que ayude a especificar la asimetría multivariada y / o la curtosis, junto con alguna estructura de correlación / covarianza.
Hace aproximadamente un año, tomé un seminario sobre distribuciones de cópula y recuerdo que el profesor mencionó casualmente que mediante el uso de cópulas de vid, uno podría generar datos que son, por ejemplo, simétricos en cada uno de sus marginales 1-D pero sesgados y viceversa. -versa. O, aún más, que cualquier margen de dimensiones inferiores podría tener cierta asimetría o curtosis mientras se mantienen simétricas (o no) las dimensiones más altas. Me sorprendió la idea de que tal flexibilidad pudiera existir. He estado tratando de encontrar algún tipo de artículo o documento de conferencia que describa dicho método, pero no he tenido éxito :(. No tiene que ser a través del uso de cópulas, Estoy abierto a todo lo que funcione.
Editar: he agregado un código R para intentar mostrar lo que quiero decir. Hasta ahora solo conozco bien la definición de Mardia de asimetría y curtosis multivariante. Cuando abordé por primera vez mi problema, ingenuamente pensé que si usaba una cópula simétrica (gaussiana en este caso) con marginales sesgados (beta, en este ejemplo), las pruebas univariadas en los marginales tendrían importancia, pero la prueba de Mardia para la asimetría / curtosis multivarita sería no ser significativo Lo intenté y no salió como esperaba:
library(copula)
library(psych)
set.seed(101)
cop1 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"),
c("beta", "beta"),list(list(shape1=0.5, shape2=5),
list(shape1=0.5, shape2=5)))}
Q1 <- rmvdc(cop1, 1000)
x1 <- Q1[,1]
y1 <- Q1[,2]
cop2 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"),
c("norm", "norm"),list(list(mean=0, sd=1),
list(mean = 0, sd=1)))}
Q2 <- rmvdc(cop2, 1000)
x2 <- Q2[,1]
y2 <- Q2[,2]
mardia(Q1)
Call: mardia(x = Q1)
Mardia tests of multivariate skew and kurtosis
Use describe(x) the to get univariate tests
n.obs = 1000 num.vars = 2
b1p = 10.33 skew = 1720.98 with probability = 0
small sample skew = 1729.6 with probability = 0
b2p = 22.59 kurtosis = 57.68 with probability = 0
mardia(Q2)
Call: mardia(x = Q2)
Mardia tests of multivariate skew and kurtosis
Use describe(x) the to get univariate tests
n.obs = 1000 num.vars = 2
b1p = 0.01 skew = 0.92 with probability = 0.92
small sample skew = 0.92 with probability = 0.92
b2p = 7.8 kurtosis = -0.79 with probability = 0.43
Al inspeccionar los contornos para 'cop1' VS 'cop2', así como los gráficos de densidad bivariados empíricos, también puedo ver que ninguno de ellos parece simétrico en absoluto. Fue entonces cuando me di cuenta de que esto es probablemente un poco más complicado de lo que pensaba.
Sé que Mardia no es la única definición de asimetría / curtosis multivariada, por lo que no me estoy limitando a encontrar un método que solo satisfaga las definiciones de Mardia.
¡gracias!