16 votos

Método para la generación de correlación no normal de los datos

Estoy interesado en encontrar un método para la generación de correlación, no normal de los datos. Así que lo ideal algún tipo de distribución que tiene en una covarianza (o correlación) de la matriz como parámetro y genera datos que se aproxima a ella. Pero aquí está el truco: es el método que yo estoy tratando de encontrar el debe tener la flexibilidad para controlar también su multivariante de la asimetría y / o curtosis.

Estoy familiarizado Fleishman del método y el uso del método de la potencia de la normal varia, pero creo que la mayoría de esas extensiones sólo permitirá al usuario para ciertas combinaciones de marginales de la asimetría y la curtosis, dejando multivariante de la asimetría / curtosis ahí. Lo que me preguntaba es si hay un método que ayuda a especificar los multivariante de la asimetría y / o curtosis, junto con algunos de correlación / estructura de covarianza.

Alrededor de hace un año tomé un seminario sobre la cópula de las distribuciones, y recuerdo que el profesor casualmente mencionar que a través del uso de la vid cúpulas, se podría generar datos que es, decir, simétrica en cada uno de sus 1-D marginales sino en conjunto sesgada y vice-versa. O, aún más, de que cualquier menor dimensiones de los márgenes podrían tener algún asimetría o curtosis, manteniendo las dimensiones más altas simétrica (o no). Yo estaba maravillado por la idea de que la flexibilidad podría existir he estado tratando de encontrar algún tipo de artículo o conferencia de papel que describe dicho método, pero he estado sin funcionar :(. No tiene que ser a través del uso de cúpulas, estoy abierto a cualquier cosa que funcione.

Edit: he añadido un poco de código R para tratar de demostrar lo que quiero decir. Hasta ahora sólo estoy bien familiarizado con Mardia la definición multivariante de la asimetría y la curtosis. Cuando por primera vez me acerqué a mi problema yo ingenuamente pensé que si he utilizado un simétrica cópula (Gauss en este caso) con sesgada marginales (beta, en este ejemplo), univariado de las pruebas en los marginales daría importancia, pero Mardia de la prueba para multivarite asimetría/curtosis, no sería significativo. He intentado eso y no salió como yo 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 de 'cop1' VS 'cop2, así como los empíricos bivariante de la densidad de las parcelas, también puedo ver que ninguno de ellos se ven simétrica. Eso es 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 multivariante de la asimetría/curtosis, así que no estoy limitándome a la búsqueda de un método que sólo se satisface Mardia las definiciones.

gracias!

4voto

S. Punky Puntos 176

Después de mucho buscar, saltar a través de foros en línea, consultar con los profesores y haciendo UN MONTÓN de revisión de la literatura, he llegado a la conclusión de que, probablemente, LA única manera de abordar este problema es mediante el uso de la vid cúpulas de hecho. Da un poco de control sobre los pares de la asimetría y la curtosis (o cualquier momentos de orden superior) - para un p-variable aleatoria vector y la libertad para especificar p-1 par de cúpulas y el resto de los p*(p-1)/2 - (p-1) dimensiones puede ser especificado en algún tipo de condicional de la cópula.

Doy la bienvenida a otros métodos que la gente podría haber llegado a través de pero al menos yo voy a salir de este puntero hacia una respuesta porque no puedo, por la vida de mí, encontrar otras maneras para abordar esta cuestión.

2voto

Yazan Puntos 6

Usted puede ser capaz de resolver por medio de la modificación Ruscio y Kaczetow (2008) algoritmo. Su trabajo proporciona un algoritmo iterativo (con código R) que minimiza la diferencia entre el real y la intención de formas marginales. Usted podría ser capaz de modificarlo para que su focalización en el multivariante (más que marginal) momentos.

Ruscio, J., & Kaczetow, W. (2008). La simulación no normal multivariante de datos mediante un algoritmo iterativo. Multivariante En La Investigación Del Comportamiento, 43(3), 355-381. doi:10.1080/00273170802285693

1voto

coledot Puntos 674

Usted puede ser que desee comprobar la Generalizada Distribución Elíptica, lo que permite un "clásico" de la forma de la matriz con la flexibilidad para otras funciones.

0voto

fsmart Puntos 550

He venido para arriba con un método simple para hacer esto que no implica coplas y otros diseños complejos. Me temo que no tengo ninguna referencia formal a pesar de que el método parece ser muy eficaz.

La idea es simple. 1. Dibujar cualquier número de variables a partir de una articulación de la distribución normal. 2. Aplicar la univariante normal CDF de las variables que se derivan de las probabilidades para cada variable. 3. Por último se aplica la inversa de la CDF de cualquier distribución para simular atrae de esa distribución.

Me encontré con este método en 2012 y se ha demostrado utilizando el programa Stata. También he escrito un post reciente que muestra el mismo método que utiliza R.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X