Generando variables aleatorias binomiales con correlación dada


8

Supongamos que sé cómo generar variables aleatorias binomiales independientes. ¿Cómo puedo generar dos variables aleatorias?X y Y tal que

XBin(8,23),YBin(18,23)  and  Corr(X,Y)=0.5

Pensé en tratar de usar el hecho de que X y YρX son independientes donde ρ=Corr(X,Y) pero no creo que XρYestá distribuido binomialmente, así que no puedo usar este método. Si esto hubiera funcionado, habría generado dos variables aleatorias binomiales, digamosA y B, luego establecer X=A y YρX=B es decir Y=B+ρA y por lo tanto habría conseguido el par (X,Y). Pero no puedo hacer esto comoYρX no está distribuido binomialmente.

Cualquier sugerencia será apreciada sobre cómo proceder.


En realidad, este problema se produjo en un examen semestral, por lo que no es tarea, pero supongo que puede llamarse autoestudio. Se agregó la etiqueta.
Landon Carter

Respuestas:


8

No puede usar la representación lineal de la correlación en distribuciones de soporte discretas.

En el caso especial de la distribución binomial, la representación

X=i=18δiY=i=118γiδi,γiB(1,2/3)
puede ser explotado desde
cov(X,Y)=i=18j=118cov(δi,γj)
Si elegimos algunos de los δies igual a algunos de los γj's, y generados independientemente de lo contrario, obtenemos
cov(X,Y)=i=18j=118I(δi:=γj)var(γj)
donde la notación I(δi:=γj) indica que δi se elige idéntico a γj en lugar de generarse como un Bernoulli B(1,2/3).

Como la restricción es

cov(X,Y)=0.5×8×18×23×13
tenemos que resolver
i=18j=118I(δi:=γj)=0.5×8×18=6
Esto significa que si elegimos 6 de los 8 δies igual a 6 de los 18 γjDeberíamos obtener esta correlación de 0.5.

La implementación es la siguiente:

  1. Generar ZB(6,2/3), Y1B(12,2/3), X1B(2,2/3);
  2. Toma X=Z+Z1 y Y=Z+Y1

Podemos verificar este resultado con una simulación R

> z=rbinom(10^8,6,.66)
> y=z+rbinom(10^8,12,.66)
> x=z+rbinom(10^8,2,.66)
cor(x,y)
> cor(x,y)
[1] 0.5000539

Comentario

Esta es una solución bastante artificial al problema, ya que solo funciona porque 8×18 es un cuadrado perfecto y porque cor(X,Y)×8×18es un entero Para otras correlaciones aceptables, la aleatorización sería necesaria, es decirI(δi:=γj) sería cero o uno con alguna probabilidad ϱ.

Apéndice

El problema fue propuesto y resuelto hace años en Stack Overflow con la misma idea de compartir Bernoullis.


1
+1. No necesitas eso8×18ser un cuadrado Las condiciones para Cor(X,Y)=ρ tener una solución (a través de este método) para X Binomio(n,p) y Y Binomio(m,q) son (1) p=q y 2) 0ρmnmin(m,n)es un entero Por cierto negativoρ, el uso de una distribución multinomial da una solución. Un enfoque más general, pero más difícil, usaría cópulas.
whuber

@whuber: para la correlación negativa, primero pensé en usar 1γjpero obviamente no funciona. ¿Podría ampliar la solución genérica? (También pensé en cópulas, pero calibrar cópulas para alcanzar la correlación correcta es un asunto desagradable, ¿no es así ?!
Xi'an

Xi'an, me gustaría preguntarte si el método que usaste es estándar. Esto se debe a que busqué mucho en Internet y no pude encontrar nada.
Landon Carter

2
Estoy de acuerdo contigo, ¡no quiero trabajar con esas cópulas! Pero al menos muestran que las soluciones deberían existir (dentro de ciertos límites enρ, dependiente de los otros parámetros) en la configuración más general. Sería interesante saber si las construcciones más simples, como la que usted da aquí, podrían aplicarse para manejar casos dondepq o ρ<0. Yedaynara: el método de dividir dos variablesX,Y dentro X+Z,Y+Zes estándar para cualquier familia paramétrica cerrada bajo adición; y eso es todo lo que está pasando aquí.
whuber

@yedaynara: Me sorprende que no haya podido encontrar "nada", ya que busqué en Google "simulación binomial correlacionada" y encontré inmediatamente esta publicación en Stack Overflow .
Xi'an
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.