Mi objetivo final es poder tener una forma de generar un vector de tamaño de variables aleatorias de Bernoulli correlacionadas. Una forma en que estoy haciendo esto es usar el enfoque de Gaussian Coupla. Sin embargo, el enfoque de Gaussian Coupla me deja con un vector:
Supongamos que he generado modo que la correlación común entre ellos es . Ahora, ¿cómo puedo transformarlos en un nuevo vector de o ? En otras palabras, me gustaría:
pero con la misma correlación .
Un enfoque en el que pensé fue asignar una regla de corte rígida tal que si , entonces dejara y si , entonces dejara .
Esto parece funcionar bien en las simulaciones, ya que retiene la estructura de correlación, pero es muy arbitrario para mí qué valor de corte debe elegirse aparte de .
Otra forma es tratar cada como una variable aleatoria de Bernoulli con probabilidad de éxito y muestras de ella. Sin embargo, este enfoque parece causar pérdida de correlación y en lugar de , puedo obtener o .
¿Alguien tiene alguna idea o entrada en esto? Gracias.
fuente
Respuestas:
No entiendo la cópula gaussiana lo suficiente como para saber cuál es el problema. Pero encontré una manera de generar vectores de Bernoulli correlacionados.
Siguiendo https://mathoverflow.net/a/19436/105908 si tomamos un conjunto de vectores fijos y un vector aleatorio en la esfera unitaria , podemos transformar en binario donde . En esta configuración, donde es el ángulo entre y .v1. . .vnorte tu tu X Xyo= ( u ⋅vyo> 0 ) c o r (Xyo,Xj) =π- 2 ∗ θ ( i , j )π θ ( i , j ) vyo vj
Cómo encontrar la matriz adecuadapara producir una matriz de correlación deseada ? La condición de ángulo se traduce en y así podemos encontrar con descomposición de Cholesky.V= |v1. . .vnorteEl | R VVT=cos(−πR−π2) V
A continuación se muestra un código de ejemplo en R:
Gracias @ jakub-bartczuk por vincularse a la pregunta de MO: no lo encontraría solo.
El código anterior tiene una gran limitación: las distribuciones marginales se fijan en . Actualmente no sé cómo extender este enfoque para que se ajuste tanto a las correlaciones como a las distribuciones marginales. Otra respuesta tiene un enfoque para el caso general, pero pierde mucha simplicidad (implica integración numérica). También hay un documento llamado Generando trenes de espigas con coeficientes de correlación especificados y el paquete de Matlab que lo acompaña donde el muestreo implica "solo" encontrar numéricamente el cero único de una función monotónica por bisección.Xi∼Bernoulli(0.5)
fuente